Как я могу получить активные экранные размеры?

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

132
задан Alex Jolig 30 November 2015 в 08:11
поделиться

4 ответа

Screen.FromControl, Screen.FromPoint и Screen.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);
  }
}
137
ответ дан 24 November 2019 в 00:09
поделиться

Это можно использовать для получения границ рабочего стола рабочего стола основного экрана:

System.Windows.SystemParameters.WorkArea

Это также полезно для получения только размера основного экрана:

System.Windows.SystemParameters.PrimaryScreenWidth System.Windows.SystemParameters.PrimaryScreenHeight

60
ответ дан 24 November 2019 в 00:09
поделиться

Прибавьте к ffpf

Screen.FromControl(this).Bounds
12
ответ дан 24 November 2019 в 00:09
поделиться

Также вам может понадобиться:

, чтобы получить общий размер всех мониторов, а не одного в частности.

33
ответ дан 24 November 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: