方法 : 画面の向きと解像度を変更する

更新 : 2007 年 11 月

次の表は、.NET Compact Framework でサポートされている Pocket PC および Smartphone の画面の向きを示しています。寸法は、幅、高さの順にピクセル数で示してあります。

画面の向き

96 DPI の標準寸法

192 DPI (高解像度) の標準寸法

ポートレート (縦長) - Pocket PC

ポートレート (縦長) - Smartphone

240 × 320

176 × 220 および 240 × 320

480 × 640

352 × 440 および 480 × 640

ランドスケープ (横長) - Pocket PC のみ

320 × 240

640 × 480

スクエア (正方形) - Pocket PC のみ

240 × 240

480 × 480

コントロールの固定やドッキングを使用すると、画面の方向が違ってもコントロールのサイズを自動的に変更して、合わせることができます。コントロールを固定すると、一端からの距離が指定の距離に保たれます。ドッキングすると、親コンテナの一辺に結合されます。

含まれているコントロールまたはフォームのサイズが変更される場合は、動作はそのコントロールの Anchor プロパティによって決まります。含まれているコントロールのどの端に結合するのかは、コントロールの Dock プロパティで指定します。

.NET Compact Framework での固定とドッキングの動作は、.NET Framework における動作と同じです。

アプリケーションをカスタマイズすると、異なる DPI (dots per inch) のピクセル解像度の設定に対応できます。

画面方向の変更に対応するには

  • コントロールは、Panel などのコンテナ コントロールの特定の領域に配置でき、PanelDock プロパティには、目的とする端を設定できます。

  • フォームの両側との関連でコントロールのサイズと位置を適切な状態に保つには、コントロールの Anchor プロパティに目的の位置を設定します。

    たとえば、ボタンを常に右下隅に表示し、サイズを一定に保つには、次のステートメントを使用します。

    Me.Button1.Anchor = AnchorStyles.Bottom Or AnchorStyles.Right
    
    this.button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
    

Microsoft Visual Studio 2005 では、固定とドッキングの設定を [プロパティ] ペインで行うことができます。

画面の方向を変更するには

  • Pocket PC で Windows Mobile バージョン 5.0 を実行している場合には、ScreenOrientation 列挙体で指定されているように、画面の方向を縦長のゼロ度から、90 度、180 度、270 度に変更できます。たとえば、次のステートメントでは、画面の方向がランドスケープ (横長) に変更されます。

    SystemSettings.ScreenOrientation = ScreenOrientation.Angle270 
    
    SystemSettings.ScreenOrientation = ScreenOrientation.Angle270;
    

    画面の方向を変更すると、アプリケーションだけでなく、デバイスの設定も変更されます。したがって、FormClosing イベントのイベント処理コードで、画面の方向を元の設定に戻すことをお勧めします。

画面解像度の変更に対応するには

  • Microsoft Visual Studio 2005 でスマート デバイス プロジェクトを作成する場合には、デバイスの画面解像度に合わせてコントロールのサイズを自動的に変更するためのコードがデザイナによって生成されます。そうでない場合には、開発時に使用したデバイスとは別の DPI 解像度のデバイスでアプリケーションを実行すると、フォームは大きすぎる状態または小さすぎる状態で表示されます。したがって、フォーム上のコントロールを適切なサイズに拡大縮小する必要があります。

    Visual Studio 2005 でスマート デバイス プロジェクトを作成すると、デザイナによって InitializeComponent メソッドに次のステートメントが追加されます。

    [Visual Basic]

    Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!)
    Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi
    

    [C#]

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

    このステートメントは、96 DPI の解像度でアプリケーションが開発されており、DPI モードを参照して自動的に拡大縮小が実行されることを示しています。96 DPI は、Visual Studio 2005 を実行しているデスクトップ コンピュータから取得した既定の値です。このコードはデザイナで自動的に生成され、異なる DPI 設定に対応してフォーム上のコントロールが自動的に拡大縮小されます。

    アプリケーションに、OnPaint メソッドで描画するグラフィックスが含まれている場合、このグラフィックスは自動的には拡大縮小されません。この場合には、対象の Graphics オブジェクトの DpiX プロパティおよび DpiY プロパティを使用して目的のサイズを指定する必要があります。手動によるスケーリングの例については、「LogFont を使用したテキストの回転のサンプル」を参照してください。

参照

処理手順

方法 : フォームの端に合わせてコントロールを配置する

概念

Windows フォームにおける自動スケーリング

その他の技術情報

.NET Compact Framework の Windows フォーム コントロール