C#メモ Manifestファイルを追加してフォームの表示がぼやっとしているのをはっきりさせてみる

C#

なんかWindows10だとダイアログの文字列がぼやっとする。

調べてみたらDPIの設定次第なんだそうな。
で、ポイントはこんな感じ。

  • プロジェクトにManifestファイルを追加する
  • dpiAwareタグをコメントアウトする

とりあえず、コンソールプロジェクトを作ってメッセージを表示してみる。
メッセージを表示するコードはこんな感じ。

/// <summary>
/// フォームをロードしたときのイベント
/// </summary>
/// <param name="sender">イベントを作ったオブジェクト</param>
/// <param name="arguments">イベントの引数</param>
private void OnLoad(object sender, EventArgs arguments)
{
	string message = @"なんか文字がぼやっとする?";
	MessageBox.Show(message);
}

んで、Manifestファイルを追加する。
追加する手順はこんな感じ。

  1. プロジェクトを右クリックする。
  2. メニューの追加/新しい項目をクリックする。
  3. 新しい項目の追加って画面が表示されるので、真ん中のリストから"マニュフェスト"を選んで"追加"ボタンをクリックする。
    今回は"app.manifest"ってファイル名にした。
  4. ソリューションのツリーにapp.manifestって項目が表示されたら追加おしまい。

んで、追加したManifestファイルを編集する。
最初はこんな感じになってて、コメントアウトしてある。

  <!-- アプリケーションが DPI 対応であり、それ以上の DPI で Windows によって自動的にスケーリングされないことを
       示します。Windows Presentation Foundation (WPF) アプリケーションは自動的に DPI に対応し、オプトインする必要は
       ありません。さらに、この設定にオプトインする .NET Framework 4.6 を対象とする Windows Forms アプリケーションは、
       app.config ファイルで 'EnableWindowsFormsHighDpiAutoResizing' 設定を 'true' に設定する必要があります。-->
  <!--
  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
    </windowsSettings>
  </application>
  -->

<application>タグのところにある<!–と–>の文字列を削除してコメントアウトをはずす。

  <!-- アプリケーションが DPI 対応であり、それ以上の DPI で Windows によって自動的にスケーリングされないことを
       示します。Windows Presentation Foundation (WPF) アプリケーションは自動的に DPI に対応し、オプトインする必要は
       ありません。さらに、この設定にオプトインする .NET Framework 4.6 を対象とする Windows Forms アプリケーションは、
       app.config ファイルで 'EnableWindowsFormsHighDpiAutoResizing' 設定を 'true' に設定する必要があります。-->
  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
    </windowsSettings>
  </application>

で、実行してみるとこんな感じ。

そんなこんなで明日への自分へのメモってことで。