C# フォームの文字がぼやける&実行時にサイズが変わる問題の対処

工学系記事

Sorry, this entry is only available in Japanese. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.

C#のWindows Formsアプリケーションで、CrearTypeのフォントを使っているのにも関わらず実行時にフォントがぼやける場合の問題の対処法。この対処によって、フォームのサイズが開発時と実行時で変わってしまうという問題も同時に解決されたのでメモ。

上記の問題は、高DPIのディスプレイを使っている場合に起こるらしい(このサイト参照)。解決手順を以下に示す。

1.プロジェクトにアプリケーション・マニフェストファイル(app.manifest)を追加

ソリューションエクスプローラのプロジェクト名の右クリックメニューから「追加」→「新しい項目」を選ぶ。追加する項目の選択肢の中の「アプリケーション・マニフェスト」を選ぶ。名前はそのままでよい。app.manifestファイルがプロジェクトエクスプローラに追加される。

2.app.manifestファイルの修正

app.manifestファイルの中に、

<!– 
  <application xmlns=”urn:schemas-microsoft-com:asm.v3″>
    <windowsSettings>
      <dpiAware xmlns=”http://schemas.microsoft.com/SMI/2005/WindowsSettings”>true</dpiAware>
    </windowsSettings>
  </application>  –>

という記載があるはず。「<!–」「 –>」で囲まれた部分は無視されてしまうので、これを外し、

 <application xmlns=”urn:schemas-microsoft-com:asm.v3″>
    <windowsSettings>
      <dpiAware xmlns=”http://schemas.microsoft.com/SMI/2005/WindowsSettings”>true</dpiAware>
    </windowsSettings>
  </application>

の様にする。この修正によって、上記2つの問題は同時に解決された。

ピックアップ記事

関連記事