高dpi Windowsアプリケーションでの鮮明なテキストレンダリングの達成
高解像度ディスプレイは、Windowsアプリケーションに課題を提示します。スケーリングされたインターフェイスは、しばしばぼやけたテキストにつながります。これは、WindowsのビットマップベースのDPI仮想化の結果です。 これを解決し、鋭いテキストを確保するには、アプリケーションは高DPI設定を処理する能力を明示的に宣言する必要があります。
高DPI互換性の有効化:マニフェストアプローチ
ソリューションには、アプリケーションのマニフェストファイルの変更が含まれます。 アプリケーションがHigh DPIをサポートするというWindowsに要素信号を追加します。 必要なマニフェストコードは次のとおりです
<dpiaware>
<code class="language-xml"><?xml version="1.0" encoding="utf-8"?> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> <assemblyIdentity name="MyApplication.app" version="1.0.0.0" /> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> <application> <windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> <dpiAware>true</dpiAware> </windowsSettings> </application> </assembly></code>
SetProcessDPIAware()
Visual Studio 2015 Update 1以降:Main()
<code class="language-csharp">[STAThread] static void Main() { if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); // Adjust as needed } [System.Runtime.InteropServices.DllImport("user32.dll")] private static extern bool SetProcessDPIAware();</code>
概要:
アプリケーションdpi-awareを宣言することにより(マニフェストまたは<dpiaware>
を介して)、WindowsのDPI仮想化の制限をバイパスします。これにより、High-DPI画面での鋭くスケーラブルなテキストレンダリングが保証され、ユーザーエクスペリエンスが大幅に向上します。
以上がWindowsアプリケーションをハイDPI画面にサクサクしたテキストを表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。