WinForms コントロール スケーリング: 高 DPI 環境での最適な自動調整用
高 DPI 環境における WinForms の自動スケーリング機能は限られていると一般に考えられていますが、実際には、.NET 2.0 以降では自動スケーリング機能が大幅に向上しています。ただし、これらの改善点を最大限に活用するには、開発者は特定の設計ガイドラインに従う必要があります。
自動スケーリングをサポートしないコントロール
一部のコントロールにはスケーリングに制限があります:
AutoSize
属性が無効で、フォントが継承フォントである場合は、スケーリング エラーを防ぐために Font
属性を明示的に設定します。 ScaleControl
メソッドをオーバーライドします。 Panel1MinSize
、Panel2MinSize
、および SplitterDistance
属性の設定は避けてください。 MultiLine
属性が有効で、フォントが継承フォントである場合は、Font
属性を明示的に設定します。 CreateGraphics.DpiX
と .DpiY
に基づいて ToolStrip.ImageScalingSize
を調整します。 SizeMode
属性が Zoom
または StretchImage
に設定されていることを確認してください。 CreateGraphics.DpiX
と .DpiY
に基づいて ImageList.ImageSize
を設定します。 デザインガイドライン
1. コンテナ制御
AutoScaleMode
プロパティを Font
に設定します。 AutoScaleDimensions
属性を new System.Drawing.SizeF(6F, 13F)
に割り当てます (必要に応じて調整します)。 2. デザイナーの構成
AutoSize
プロパティが有効になっていることを確認します。 3. フォント管理
Font
プロパティは、リーフ コントロール レベルまたは基本フォームのコンストラクター (アプリケーション全体のデフォルトの場合) でのみ設定します。 Font
を変更すると、それに応じて AutoScaleDimensions
が再計算されます。 4. ドッキングとアンカー
Dock
または Anchor Right
の代わりに Bottom
属性を使用します。 5. 動的に追加されたコントロール
AutoScaleDimensions
と AutoScaleMode
を設定してから、レイアウトを再開します。 6. 基本クラスと AutoScale
AutoScaleMode
属性は Inherit
に設定する必要があります。他の値に設定すると、自動スケーリングが無効になる場合があります。 7. ウィンドウサイズ制限
MaxSize
属性の使用は避けてください。コンストラクターまたは OnLoad
イベントで MinSize
と MaxSize
をスケーリングされたディメンションに設定します。 以上が高 DPI 環境での自動調整のために WinForms コントロールのスケーリングを最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。