teks skala tinggi dan kabur dalam aplikasi WinForms
Aplikasi WinForms sering menemui teks kabur ketika berjalan pada paparan DPI tinggi (150% atau lebih). Ini berlaku kerana Windows mungkir ke skala bitmap, mengakibatkan rendering teks yang lemah.
Memahami pengendalian Windows DPI
Windows secara automatik skala aplikasi melebihi 100% dpi (atau 125% dengan "scaling dpi gaya XP"). Proses skala bitmap ini membawa kepada masalah teks kabur.
Penyelesaian: Kesedaran DPI
Kunci untuk menyelesaikan ini adalah untuk menjadikan aplikasi anda DPI-ALARARE. Ini membolehkan ia mengendalikan skala dengan sewajarnya, memberikan teks tajam pada resolusi yang lebih tinggi. Ini dapat dicapai melalui pengubahsuaian nyata atau p/invoke, bergantung pada kaedah penempatan anda.
Kaedah 1: Pengubahsuaian Fail Manifest
Ubah suai fail manifes aplikasi anda untuk mengisytiharkan kesedaran DPI. Tambah atau uncomment yang berikut dalam tag: <application>
<windowsSettings> <dpiAware>true</dpiAware> </windowsSettings>
kaedah 2: p/invoke untuk penyebaran clickonce
Jika anda menggunakan penempatan ClickOnce, gunakan p/invoke untuk memanggil dalam kaedah SetProcessDPIAware()
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();
Kaedah 3: Visual Studio 2015 dan kemudian
Visual Studio 2015 Update 1 dan kemudian versi biasanya termasuk arahan kesedaran DPI yang diperlukan dalam manifes, tetapi mereka mungkin dikomentari. Hanya keluarkan komen untuk membolehkan fungsi ini.Dengan melaksanakan salah satu kaedah ini, aplikasi WinForms anda akan mengendalikan tetapan DPI yang tinggi, mengakibatkan rendering teks yang segar dan jelas.
Atas ialah kandungan terperinci Bagaimana saya boleh membetulkan teks kabur dalam aplikasi WinForms saya pada paparan DPI tinggi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!