Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Secara Pemrograman Faktor Penskalaan Paparan Windows dalam C#?
Mengakses Tetapan Paparan Windows dalam C#
Versi Windows 7 dan lebih baru menyediakan tetapan Panel Kawalan yang membolehkan pengguna melaraskan teks dan saiz elemen UI. Pembangun C# selalunya perlu mendapatkan semula tetapan ini untuk tingkah laku aplikasi dinamik.
Penyelesaian Praktikal
Secara langsung menggunakan graphics.DpiX
dan DeviceCap.LOGPIXELSX
secara tidak dijangka mengembalikan nilai tetap (96 DPI) tanpa mengira penskalaan sebenar. Untuk menentukan faktor penskalaan dengan tepat, pendekatan berbeza diperlukan:
<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 for 125% scaling } }</code>
Coretan kod ini memanfaatkan GetDeviceCaps
untuk membandingkan ketinggian skrin logik dan fizikal, memberikan faktor penskalaan yang tepat. Hasil daripada 1.25, misalnya, menunjukkan tahap penskalaan 125%.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Secara Pemrograman Faktor Penskalaan Paparan Windows dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!