1. ホーム
  2. c#

[解決済み] アクティブ画面の寸法を取得するにはどうすればよいですか?

2022-03-06 16:54:12

質問

私が探しているのは、以下のものに相当するものです。 System.Windows.SystemParameters.WorkArea を、現在ウィンドウが表示されているモニタのために使用します。

明確化する。 問題のウィンドウは WPF ではなく WinForm .

解決方法は?

Screen.FromControl , Screen.FromPointScreen.FromRectangle が参考になるはずです。例えばWinFormsでは次のようになります。

class MyForm : Form
{
  public Rectangle GetScreen()
  {
    return Screen.FromControl(this).Bounds;
  }
}

WPFの場合、同等の呼び方は知りません。したがって、この拡張メソッドのようなことをする必要があります。

static class ExtensionsForWPF
{
  public static System.Windows.Forms.Screen GetScreen(this Window window)
  {
    return System.Windows.Forms.Screen.FromHandle(new WindowInteropHelper(window).Handle);
  }
}