ホームページ >バックエンド開発 >C++ >C# で Windows ディスプレイのスケーリング係数を正確に決定するにはどうすればよいですか?

C# で Windows ディスプレイのスケーリング係数を正確に決定するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-15 11:03:47234ブラウズ

How Can I Accurately Determine Windows Display Scaling Factor in C#?

C# アプリケーションでの Windows ディスプレイ スケーリングへのアクセスと利用

Windows ユーザーは、表示のスケーリングを調整して、テキストと UI 要素のサイズを変更できます。 この機能は、最適なユーザー エクスペリエンスを実現するためにアプリケーションをさまざまなスケーリング設定に適応させる必要がある C# 開発者にとって非常に重要です。

スケーリング係数を正確に決定する

Graphics.DpiXDeviceCap.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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。