ホームページ >バックエンド開発 >C++ >さまざまな DPI およびフォント設定に適応する自動スケーリング WinForms コードを作成するにはどうすればよいですか?

さまざまな DPI およびフォント設定に適応する自動スケーリング WinForms コードを作成するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-19 08:32:09173ブラウズ

How Can I Write Auto-Scaling WinForms Code That Adapts to Different DPI and Font Settings?

WinForms Auto Scaling コード記述ガイド

はじめに

WinForms には強力な自動スケーリング機能が備わっています。.NET 2.0 以降のバージョンでは、自動スケーリングが大幅に改善されています。この記事では、開発者がさまざまなシステム フォントや DPI 設定に適応する WinForms コードを作成できるようにするための設計ガイドラインと制限について説明します。

Zoom は制限されたコントロールをサポートします

一部の WinForms コントロールには自動スケーリングに関する制限があります:

  • Label コントロール (AutoSize プロパティが False に設定され、Font プロパティが継承される場合)。プロパティ ウィンドウで明示的にフォントを太字に設定してください。
  • ListView コントロールの列幅。 form.ScaleControl メソッドをオーバーライドして列幅を調整します。
  • SplitContainer コントロールのPanel1MinSize、Panel2MinSize、およびSplitterDistanceプロパティ。
  • TextBox コントロール (MultiLine プロパティが True に設定されており、Font プロパティを継承する場合)。フォントは明示的に設定してください。
  • ToolStripButton コントロールのイメージ。フォームのコンストラクターで ToolStrip.AutoSize プロパティと ToolStrip.ImageScalingSize プロパティを操作します。
  • PictureBox コントロールの SizeMode プロパティは Zoom または StretchImage に設定する必要があります。
  • TreeView コントロールのイメージ。 DPI に応じて ImageList.ImageSize プロパティを調整します。
  • フォーム コントロールのサイズ。作成後に固定サイズのフォームを手動で拡大縮小します。

自動スケーリング設計ガイドライン

効果的な自動スケーリングを確保するには、次のガイドラインに従ってください:

  • AutoScaleMode を Font に設定する: DPI およびシステム フォントの変更に対応するには、すべてのコンテナ コントロールで AutoScaleMode を Font に設定する必要があります。
  • AutoScaleDimensions を設定します: AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); を使用します。96dpi および MS Sans Serif フォントを想定しています。選択した DPI とフォントに応じてこれらの値を調整してください。
  • 96dpi でのデザイン: アンカー右または下プロパティをユーザー コントロールに直接適用することは避けてください。パネルを中間としてご利用ください。
  • 動的コントロールの追加の処理: 動的に追加されたコントロールの場合は、レイアウトを一時停止し、AutoScaleMode と AutoScaleDimensions を設定して、追加する前にレイアウトを再開します。
  • デザイナーで Form.MaxSize の使用を避ける: スケーリングの制限を避けるために MaxSize を動的に設定します。
  • アンカーまたはドッキングを使用する: 一貫した自動スケーリングのために、コンテナー内のすべてのコントロールがアンカーまたはドッキングを使用していることを確認します。
  • デザイナーのフォーム サイズを制限する: さまざまな DPI 設定で最適なスケーリングを行うには、デザイナーのフォーム サイズを 1000x680 未満に保ちます。

以上がさまざまな DPI およびフォント設定に適応する自動スケーリング WinForms コードを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。