Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengambil Faktor Penskalaan Paparan Windows dengan Tepat dalam C#?

Bagaimanakah Saya Boleh Mengambil Faktor Penskalaan Paparan Windows dengan Tepat dalam C#?

Mary-Kate Olsen
Lepaskan: 2025-01-15 11:10:50
asal
369 orang telah melayarinya

How Can I Accurately Retrieve Windows Display Scaling Factor in C#?

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan