タスクバーを除いた画面の幅と高さを取得するコードを紹介します。
こちらの記事では、画面の解像度を取得するコードを紹介しましたが、Windowsアプリケーションを作成する場合は、画面の解像度ではなく画面全体の大きさからタスクバーなどの領域を除外したサイズを取得したい場合があります。(実際に作業領域として使える大きさ)
この記事ではスクリーン全体の大きさから、タスクバーなどを除いた画面の幅と高さを取得するコードを紹介します。
以下のUIを準備します。(button1は使用しません)
以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace ScreenImageCapture
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
int screen_width = Screen.PrimaryScreen.WorkingArea.Width;
int screen_height = Screen.PrimaryScreen.WorkingArea.Height;
textBox_Output.Text += string.Format("スクリーンの作業領域の幅:{0:d}\r\n", screen_width);
textBox_Output.Text += string.Format("スクリーンの作業領域の高さ:{0:d}\r\n", screen_height);
}
}
}
Screen.PrimaryScreen.WorkingArea.Width
でスクリーンの作業領域の幅を、Screen.PrimaryScreen.WorkingArea.Height
でスクリーンの作業領域の高さを取得します。取得した値をテキストボックスに表示します。
プロジェクトを実行します。下図のウィンドウが表示されます。
[button2]をクリックするとスクリーンの作業領域の幅と高さが表示されます。