C# アプリケーションでの Windows ディスプレイ スケーリングへのアクセスと利用
Windows ユーザーは、表示のスケーリングを調整して、テキストと UI 要素のサイズを変更できます。 この機能は、最適なユーザー エクスペリエンスを実現するためにアプリケーションをさまざまなスケーリング設定に適応させる必要がある C# 開発者にとって非常に重要です。
スケーリング係数を正確に決定する
Graphics.DpiX
や DeviceCap.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 中国語 Web サイトの他の関連記事を参照してください。