c#の機能について質問です。
ディスプレイの拡大表示設定で設定する、拡大倍率を取得する方法はございますでしょうか。
windows10で言うところの、「拡大縮小とレイアウト」で設定する内容です。
直接的にこの設定値を取得できない場合、拡大倍率を上げる前のディスプレイ固有の縦横の画素数と、拡大倍率を上げた状態のディスプレイの縦横の画素数の両方を取得できれば間接的に拡大倍率を求められると思います。
例えば、
①フルHD(1920x1080)のディスプレイ使用時に、”System.Windows.Forms.Screen”クラスより縦横の画素数(解像度)を取得する場合、通常の拡大倍率(100%)時には、縦(横)の画素数は1080(1920)となり、
②拡大倍率を150%に上げた状態では、縦(横)の画素数は720(1280)となります。(ディスプレイ固有の画素数に、拡大倍率の逆数がかかっている値が取得できる)
以上より、①と②の両方の値を取得することができれば「1080/720=1.5(=拡大倍率150%)」が取得できます。
しかし実際には、拡大倍率を上げた状態では、①のようにディスプレイ固有の縦横の画素数を取得することができません。
上記の問題が生じるそもそもの原因と、解決策をご教示願います。

回答2件
あなたの回答
tips
プレビュー