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

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

Patricia Arquette
发布: 2025-01-15 11:03:47
原创
293 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板