C#에서 Windows 디스플레이 설정에 액세스
Windows 7 이상 버전에서는 사용자가 텍스트 및 UI 요소 크기를 조정할 수 있는 제어판 설정을 제공합니다. C# 개발자는 동적 애플리케이션 동작을 위해 이 설정을 검색해야 하는 경우가 많습니다.
실용적인 솔루션
graphics.DpiX
및 DeviceCap.LOGPIXELSX
을 직접 사용하면 실제 배율에 관계없이 예기치 않게 고정 값(96 DPI)이 반환됩니다. 배율 인수를 정확하게 결정하려면 다른 접근 방식이 필요합니다.
<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 for 125% scaling } }</code>
이 코드 스니펫은 GetDeviceCaps
을 활용하여 논리적 및 물리적 화면 높이를 비교하고 정확한 배율 인수를 제공합니다. 예를 들어 1.25라는 결과는 125% 확장 수준을 나타냅니다.
위 내용은 C#에서 Windows 디스플레이 배율 인수를 프로그래밍 방식으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!