rendering teks tajam dalam aplikasi windows tinggi-dpi aplikasi
Tetapan DPI Tinggi (150% dan ke atas) boleh menyebabkan teks kabur dalam aplikasi bentuk Windows disebabkan oleh mekanisme skala lalai Windows. Untuk mencapai rendering teks yang jelas, permohonan anda mestilah secara eksplisit mengisytiharkan keserasian DPI yang tinggi. Ini dilakukan dengan mengubahsuai aplikasi manifes atau menggunakan panggilan p/invoke.
kaedah 1: mengubahsuai aplikasi manifes
<?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>
Kaedah 2: Menggunakan p/invoke untuk penyebaran clickonce
Untuk penyebaran ClickOnce, tambahkan kod berikut ke kaedah anda: Main()
[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();
Atas ialah kandungan terperinci Bagaimana saya boleh membetulkan teks kabur dalam aplikasi Windows Forms saya pada tetapan dpi yang tinggi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!