Mencapai rendering teks segar dalam aplikasi windows tinggi-dpi
Memaparkan resolusi tinggi menunjukkan cabaran untuk aplikasi Windows: Antara muka berskala sering membawa kepada teks kabur. Ini adalah akibat daripada virtualisasi DPI berasaskan Bitmap Windows. Untuk menyelesaikannya dan memastikan teks yang tajam, aplikasi mestilah mengisytiharkan keupayaan mereka untuk mengendalikan tetapan DPI yang tinggi.
Membolehkan Keserasian DPI Tinggi: Pendekatan Manifest
Penyelesaian ini melibatkan mengubah fail manifes aplikasi anda. Menambah isyarat elemen ke Windows bahawa aplikasi anda menyokong DPI yang tinggi. Inilah kod nyata yang diperlukan: <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>
Alternatif: Pendekatan Programatik (Penyebaran ClickOnce) 3
SetProcessDPIAware()
Visual Studio 2015 Update 1 dan kemudian: 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>
.
Ringkasan: <dpiaware>
), anda memintas batasan virtualisasi Windows 'DPI. Ini memastikan teks yang tajam dan berskala pada skrin DPI tinggi, sangat meningkatkan pengalaman pengguna.
Atas ialah kandungan terperinci Bagaimana saya boleh membuat aplikasi Windows saya memaparkan teks segar pada skrin DPI tinggi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!