web-dev-qa-db-ja.com

WindowsフォームDPIスケーリング

enter image description here

私のアプリケーションは100%DPI設定で問題ありませんが、ユーザーが別の(125%または150%)を選択すると、単語がコンテナーに収まりません。私がここで見つけた解決策でこれを修正しようとしました: Windowsフォントサイズを検出(100%、125%、150%) これは次のとおりです。

this.AutoScaleMode = AutoScaleMode.Dpi;

150%の設定を修正しました(少しぼかしましたが、問題ありません)。残念ながら、アプリの実行が意図されているPCで使用されている125%では同じになりませんでした。

これに対する簡単な修正はありますか、またはすべてのフォームを手動で再配置する必要がありますか?

12

DPI対応アプリケーションの作成

すべてのコンテナーは同じAutoScaleModeを使用する必要があります-この部分で問題が修正されました

Windowsアプリは異なる解像度で同じレイアウトである必要があります。これは、解像度を変更してもアプリのレイアウトに影響がないことを意味します。これを行う手順は次のとおりです。

  1. テーブルレイアウトパネルを使用する
  2. Tablelayoutpanelのセルにコントロールをドラッグし、アンカーとドックのプロパティを設定します。
  3. ドラッグされたコントロールのrowspanおよびcolspanプロパティを設定してセルをマージする
  4. ドラッグされたコントロールのセルに対するマージンとパディングを設定します。
  5. すべてのコントロールをドラッグして同じ手順を実行し、tablelayoutpanelを使用して設計を完了します
  6. Tablelayoutpanel = autosize(または%)のすべての列と行のサイズを設定します。
  7. Tablelayoutpanelプロパティを設定しますautosize = true、autosizemode =拡大および縮小
  8. フォームのプロパティを設定しますautosize = true、autosizemode =拡大および縮小
  9. Windowsアプリを実行するWindowsアプリが最大状態で開く場合は、tablelayoutpanel dockプロパティ= fillを設定します。
9