C#タスクバーを除いたデスクトップのサイズを取得する。

コンピュータ

アプリケーションのウィンドウサイズを実行しているPCごとに自動調整するためデスクトップのサイズを取得する方法を調べてみました。

namespace screensize;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        var btn = new Button
        {
            Location = new Point(100, 100),
            Size = new Size(400, 300),
            Text = "画面サイズを取得",
        };
        this.Controls.Add(btn);
        btn.Click += (s, e) => {
            if (Screen.PrimaryScreen is not null) {
                string msg = string.Format("WorkingArea Width:{0} Height:{1}\nBounds Width{2} Height{3}",
                    Screen.PrimaryScreen.WorkingArea.Width,
                    Screen.PrimaryScreen.WorkingArea.Height,
                    Screen.PrimaryScreen.Bounds.Width,
                    Screen.PrimaryScreen.Bounds.Height);
                MessageBox.Show(msg, "msg");
            }
        };
    }
}

BoundsとWorkingAreaの差がタスクバーのサイズに相当すると思われます。

コメント