在 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中文網其他相關文章!