Windows のディスプレイ設定をプログラムによって決定する
Windows 7 以降では、ユーザーはコントロール パネルでテキスト サイズなどの表示パラメータを調整できます。これらの設定にアクセスすると、ユーザーの設定に基づいてアプリケーションの機能を有効または無効にするのに役立ちます。
これらの表示設定をプログラムで取得できますか?
Surface Pro デバイスでは、ズーム レベルに関係なく、graphics.DpiX
プロパティと DeviceCap.LOGPIXELSX
プロパティの両方が一貫した値 96 を返すことがわかりました。スケーリング係数を正確に計算するには、別のアプローチが必要です。
gdi32.dll
のGetDeviceCaps
関数を活用するのが効果的です。論理的および物理的な画面の高さを測定することで、画面のスケーリング係数を決定できます。
<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); float ScreenScalingFactor = (float)PhysicalScreenHeight / (float)LogicalScreenHeight; return ScreenScalingFactor; }</code>
この関数を呼び出すことで、画面のスケーリング係数を正確に取得でき、それに応じてアプリケーションの動作を調整できます。
以上がWindows ディスプレイのスケーリング設定をプログラムで取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。