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

工学・情報学メモ

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つの問題は同時に解決された。

ピックアップ記事

関連記事