[C#] ディスプレイおよび作業エリアの画面サイズを取得する(Screen.PrimaryScreen)

Pocket

ここでは、C# にてディスプレイおよび作業領域のサイズを取得するサンプルコードを掲載しています。なお、サンプルでは複数のディスプレイをもつ、マルチスクリーン環境にも対応しています。

スポンサーリンク

ディスプレイサイズ・作業領域のサイズを取得(マルチスクリーン対応)

マルチスクリーンにも対応したそれぞれのサイズを取得するサンプルコードは次の通りです。

// プライマリスクリーンのみのサイズを取得する
Console.WriteLine("プライマリスクリーンの高さ:" + Screen.PrimaryScreen.Bounds.Height);
Console.WriteLine("プライマリスクリーンの幅 :" + Screen.PrimaryScreen.Bounds.Width);
Console.WriteLine("ワーキングエリアの高さ:" + Screen.PrimaryScreen.WorkingArea.Height);
Console.WriteLine("ワーキングエリアの幅 :" + Screen.PrimaryScreen.WorkingArea.Width);

// プライマリを含むすべてのディスプレイのサイズをそれぞれ取得する
foreach (Screen sc in Screen.AllScreens)
{
    Console.WriteLine("デバイス名:" + sc.DeviceName);
    Console.WriteLine("プライマリデバイス?:" + sc.Primary.ToString());
    Console.WriteLine("ディスプレイ高さ:" + sc.Bounds.Height);
    Console.WriteLine("ディスプレイ幅 :" + sc.Bounds.Width);
    Console.WriteLine("ワーキングエリア高さ:" + sc.WorkingArea.Height);
    Console.WriteLine("ワーキングエリア幅 :" + sc.WorkingArea.Width);
}

実行結果

ノートPCにさらに1台のディスプレイを追加して実行した結果が次の出力です。下記の結果からワーキングエリアの高さがディスプレイの高さよりも40小さな値となっています。

これは、実行した環境ではタスクバーの高さの幅になります。なお、タスクバーを自動で隠す設定にしている場合には、タスクバーの影響によって作業エリアの高さは小さくなりません。

プライマリスクリーンの高さ:864
プライマリスクリーンの幅 :1536
ワーキングエリアの高さ:824 ← 40小さくなっている
ワーキングエリアの幅 :1536

デバイス名:\\.\DISPLAY1
プライマリデバイス?:True
ディスプレイ高さ:864
ディスプレイ幅 :1536
ワーキングエリア高さ:824 ← 40小さくなっている
ワーキングエリア幅 :1536

デバイス名:\\.\DISPLAY2
プライマリデバイス?:False
ディスプレイ高さ:1080
ディスプレイ幅 :1920
ワーキングエリア高さ:1040 ← 40小さくなっている
ワーキングエリア幅 :1920

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *