2011-07-11 28 views
2

私は、240x320の画面サイズともう1つの480x640の2種類のデバイスで動作するアプリを持っています。Windowsモバイルがパネルで自動サイズ調整

すべての形態のバーの1 VSコードを生成したが細かいです:私は、署名をキャプチャしています一つの形態については

this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); 
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; 
this.AutoScroll = true; 

。私はグラフィックスハンドラを備えたパネルでこれをやっています。マウスを下ろしてイベントを移動する。私は線を描くことができるベクトル点のリストを生成します。

小さな画面ではこれで問題ありません。高解像度では、私のラインを表示することはできません..これは、パネルがウィンドウのサイズを超えているためです。

フォームは、サイズが240 x 268で作成されます。標準サイズだと思う - 私は手動で設定していない、VSは私のためにこれを行います。

高解像度デバイス上の適切な場所にパネルを得るために、座標は3,290です。つまり、290は268を超えています。また、パネルの幅は240よりやや大きい448です。

私は.net 2.0を使用しています(後で使用できません)。私はそれを大きくするためにフォームのサイズを変更する必要があると思うが、私はフォーム上の他のコントロールの既存のサイズ変更を維持したい。

私はこれを行う方法がわかりません。

答えて

0

私は将来的に同様の問題を有することができる人たちの利益のために、この答えを書いています。 PaulGは正しい方向に私を指摘しましたが、根本的な原因が何か他のものであることがわかりました。

私が使用する「のWindows Mobile 6 ProfessionalのVGA」にこれを変更する240×268

のデフォルトサイズを持っている「フォームファクタWindowsMo​​bile 6・クラシック」ははるかに大きい用紙サイズを作成したんだPDAプロジェクト。

これにより、より大きなサイズのものを正確に配置することができました。 AutoScaleModeをDPIに設定します。手動でパネルのサイズを小さくするとすべて機能しました。

IEでは、より大きなものから小さなものへの移行は簡単でした。私はより大きな仕事に小さくはなかった。

1

フォームドックを塗りつぶすようにしてから、Anchorプロパティを使用して、フォーム内のコントロールが期待通りにサイズ変更されるようにします。

個々のコントロールのサイズをカスタマイズするオプションを希望する場合は、DONTを使用してアンカープロパティを設定し、代わりにResizeイベントを処理し、そこでコード内でカスタムのサイズ変更/再配置を実行します。

例えば

private void form_Resize(object sender, EventArgs e) 
{ 
    // Center the control without changing width. Other controls are anchored. 
    this.control.Left = (this.Width - this.control.Width)/2; 
} 
+0

Ok ..私のパネルは小さいフォームの場合200 x 100、大きい場合は448 x 200です。だから、サイズを指定するのにresizeイベントを使うことができます。おそらく私は底にそれをドッキングしようとしますか?パネルは現在サイズ変更されていない唯一のアイテムです。そして、奇妙なことに、マウスのダウンイベントがまだトリガされており、ベクターの点が塗りつぶされています。サイズ変更を試して、それがどうなっているのかを見ていきます - ありがとう。 – andrew

関連する問題