画面を最大化するときや解像度を変更するときに、windowsFrom ですべてを自動的にスケーリングする方法はありますか。
これは手動スケールで正しいことがわかりましたが、解像度を切り替えるときは毎回変更する必要があります。
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
これを自動的に行うために押すことができる簡単なスイッチはありません。自動スケーリングは、非常に異なる問題を解決するためのものです。この設計目標を念頭に置いて、フォームとそのコントロールをレイアウトする必要があります。
特に、これを行う最善の方法は、ドッキングされたTableLayoutPanel
コントロールを使用してフォーム全体を「埋める」ことです。そのDock
プロパティを に設定しますDockStyle.Fill
。これは基本的に、フォームに表示する子コントロールをレイアウトするために使用する「レイアウト グリッド」になります。
次に、通常の各コントロールをそのTableLayoutPanel
コントロールの「セル」内に配置します。Anchor
子コントロールのプロパティを設定して、フォームが展開された (または縮小された) ときに子コントロールがどのように拡大するかを示します。例えば:
これを正しく行うには、少し手間がかかります。たとえば、特にフォームに表示される他のコントロールとの関係で、コントロールが希望どおりに配置されるように、コントロール内でコントロールのand/orプロパティを設定する必要がある場合があります。ColumnSpan
RowSpan
TableLayoutPanel
しかし、それはあなたが望むことを行うためのほぼ唯一の方法であり、一度セットアップすると非常にうまく機能します.