何も考えずにWindowsフォームアプリケーションを作り高DPIのPC上で起動するとこんな感じにボヤけた表示になる。
これはアプリケーションが高DPI環境に対応できていないためだ。
ボヤけたままの表示はダサいし、文字が見えにくいので対応したいと思い調べたところ、このURLで対処法が書かれていた。
social.msdn.microsoft.com
方法としては、Program.csでフォーム作成前にSetProcessDPIAwareをコールするように実装すればよいらしい。
/// <summary> /// アプリケーションのメイン エントリ ポイントです。 /// </summary> [STAThread] static void Main() { if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } [System.Runtime.InteropServices.DllImport("user32.dll")] private static extern bool SetProcessDPIAware();
これで再度ビルドして起動してみたところキレイに表示できました。
めでたしめでたし。