首页 >后端开发 >C++ >如何在 C# 中准确确定 Windows 显示比例因子?

如何在 C# 中准确确定 Windows 显示比例因子?

Patricia Arquette
Patricia Arquette原创
2025-01-15 11:03:47233浏览

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