首頁 >後端開發 >C++ >如何在 C# 中準確檢索 Windows 顯示縮放因子?

如何在 C# 中準確檢索 Windows 顯示縮放因子?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-15 11:10:50369瀏覽

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

在 C# 應用程式中精確檢索 Windows 顯示縮放

調整應用程式行為以符合使用者定義的顯示設定(例如文字和元素大小調整)是一項常見的程式設計任務。 本文介紹了一種用於準確檢索這些設定的強大 C# 方法。

雖然 Graphics.DpiXDeviceCap.LOGPIXELSX 是傳統方法,但它們可能會產生不準確的縮放值,特別是在高 DPI 顯示器上。

更可靠的方法是利用 Windows API 函數 GetDeviceCaps 來計算縮放因子。此函數會擷取邏輯和物理螢幕高度,以便進行精確計算。

這是改進的 C# 程式碼:

<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>

這種改進的方法在確定各種顯示縮放等級的縮放因子方面提供了卓越的準確性,從而可以根據使用者的顯示配置對應用程式功能進行更精確的調整。

以上是如何在 C# 中準確檢索 Windows 顯示縮放因子?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn