Mengambil dengan tepat Penskalaan Paparan Windows dalam Aplikasi C#
Menyesuaikan gelagat aplikasi untuk memadankan tetapan paparan yang ditentukan pengguna, seperti saiz teks dan elemen, adalah tugas pengaturcaraan yang kerap. Artikel ini membentangkan kaedah C# yang mantap untuk mendapatkan semula tetapan ini dengan tepat.
Walaupun Graphics.DpiX
atau DeviceCap.LOGPIXELSX
merupakan pendekatan tradisional, ia mungkin menghasilkan nilai skala yang tidak tepat, terutamanya pada paparan DPI tinggi.
Kaedah yang lebih dipercayai melibatkan memanfaatkan fungsi API Windows GetDeviceCaps
untuk mengira faktor penskalaan. Fungsi ini mendapatkan kedua-dua ketinggian skrin logik dan fizikal, membolehkan pengiraan yang tepat.
Berikut ialah kod C# yang dipertingkatkan:
<code class="language-csharp">[DllImport("gdi32.dll")] static extern int GetDeviceCaps(IntPtr hdc, int nIndex); public enum DeviceCap { VERTRES = 10, DESKTOPVERTRES = 117, } private float GetScalingFactor() { using (Graphics g = Graphics.FromHwnd(IntPtr.Zero)) { IntPtr desktop = g.GetHdc(); int logicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES); int physicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES); g.ReleaseHdc(desktop); return (float)physicalScreenHeight / logicalScreenHeight; // e.g., 1.25 = 125% } }</code>
Pendekatan yang diperhalusi ini menawarkan ketepatan yang unggul dalam menentukan faktor penskalaan merentas pelbagai tahap penskalaan paparan, membolehkan pelarasan yang lebih tepat pada fungsi aplikasi berdasarkan konfigurasi paparan pengguna.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengambil Faktor Penskalaan Paparan Windows dengan Tepat dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!