首頁 >後端開發 >C++ >如何在 C# 中準確地確定 Windows 顯示比例因子?

如何在 C# 中準確地確定 Windows 顯示比例因子?

Patricia Arquette
Patricia Arquette原創
2025-01-15 11:03:47234瀏覽

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

在 C# 應用程式中存取和利用 Windows 顯示縮放

Windows 使用者可以調整顯示縮放比例來修改文字和 UI 元素的大小。 對於需要使應用程式適應不同的縮放設定以獲得最佳使用者體驗的 C# 開發人員來說,此功能至關重要。

精確決定縮放因子

Graphics.DpiXDeviceCap.LOGPIXELSX 等標準方法在決定準確的縮放因子方面可能不可靠。更穩健的方法涉及使用邏輯和物理螢幕高度來計算因子:

<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 logicalHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES);
        int physicalHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES);
        g.ReleaseHdc(desktop);
        return (float)physicalHeight / logicalHeight;
    }
}</code>

此函數利用 GetDeviceCaps 來取得邏輯和實體螢幕高度。然後將縮放因子計算為這些高度的比率,從而精確反映使用者的顯示縮放設定。 這確保了不同顯示配置下應用程式行為的一致性。

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

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