C# アプリケーションでの Windows ディスプレイ設定へのアクセス
Windows 7 以降のバージョンでは、カスタマイズ可能な表示設定が提供されており、ユーザーはテキスト サイズやその他の視覚的な側面を調整できます。 これらの設定にアクセスすることは、多くのアプリケーションにとって適切な機能を保証するために非常に重要です。
C# で Windows ディスプレイ スケーリングを取得する
C# は表示設定にアクセスできますが、graphics.DpiX
と DeviceCap.LOGPIXELSX
のみに依存すると、すべてのレベルで正確なスケーリング係数が提供されない可能性があります。
より正確なスケーリング係数の計算
正確なスケーリング係数を決定するには、次の方法を使用します:
gdi32.dll
ライブラリをインポートします。
デバイス機能の列挙体 (DeviceCap
) を定義します。
スケーリング係数を計算するメソッドを実装します:
GetDeviceCaps
を使用して、論理的および物理的な画面の高さをピクセル単位で取得します。コード例:
<code class="language-csharp">using System; using System.Drawing; using System.Runtime.InteropServices; public class DisplayScaler { [DllImport("gdi32.dll")] static extern int GetDeviceCaps(IntPtr hdc, int nIndex); public enum DeviceCap { VERTRES = 10, DESKTOPVERTRES = 117 } public 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>
このアプローチにより、C# アプリケーションは Windows ディスプレイのスケーリング係数を正確に取得できるようになり、ユーザーのディスプレイ設定に基づいて調整できるようになります。
以上がC# アプリケーションはどのようにして Windows ディスプレイのスケーリング係数を正確に取得できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。