1. ホーム
  2. c#

[解決済み] Windowsのディスプレイ設定を取得するには?

2023-07-22 11:25:21

質問

Windows7にディスプレイの設定があります(コントロールパネル ->ディスプレイ)。これは、画面上のテキストやその他のアイテムのサイズを変更することができます。 この設定を取得し、設定値に基づいてC#アプリケーションのいくつかの機能をオン/オフできるようにする必要があります。 それは可能でしょうか?

どのように解決するのですか?

この設定は、画面のDPI、つまり1インチあたりのドット数です。

このように読みます。

float dpiX, dpiY;
Graphics graphics = this.CreateGraphics();
dpiX = graphics.DpiX;
dpiY = graphics.DpiY;

XとYの値が違うというのは今のところありえないと思います。 96の値は100%フォントのスケーリング(小さい)に対応し、120は125%スケーリング(中)に対応し、144は150%スケーリング(大きい)に対応します。しかし、ユーザーはこれらの標準的な値以外の値を設定することができます。

アプリケーションが DPI を認識するように宣言されていない限り、観察される値は DPI 仮想化の対象となる可能性があることに注意してください。