在 C# 应用程序中精确检索 Windows 显示缩放
调整应用程序行为以匹配用户定义的显示设置(例如文本和元素大小调整)是一项常见的编程任务。 本文介绍了一种用于准确检索这些设置的强大 C# 方法。
虽然 Graphics.DpiX
或 DeviceCap.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中文网其他相关文章!