WPF: Windows.Forms.Screen сообщает о неверных границах для мониторов

1

У меня есть приложение WPF и вы хотите вывести границы и рабочие области мониторов, которые у меня есть. Код выглядит следующим образом:

foreach (var screen in Screen.AllScreens.ToList().OrderByDescending(s => s.Primary)) // Primary Screen comes first
{
    Console.WriteLine("Device:       " + screen.DeviceName);
    Console.WriteLine("Bounds      : " + screen.Bounds);
    Console.WriteLine("Working Area: " + screen.WorkingArea);
}

DISPLAY1 - мой основной экран, а DISPLAY2 - мой вторичный. Оба имеют такое же разрешение: 1920 x 1080.

Странно, что этот код дает следующий результат:

Устройство: \.\DISPLAY1 Границы: {X = 0, Y = 0, Ширина = 1920, Высота = 1080} Рабочая область: {X = 0, Y = 0, Ширина = 1920, Высота = 1046}

Device: \.\DISPLAY2 Bounds: {X = 2400, Y = 0, ширина = 2400, высота = 1350} Рабочая область: {X = 2400, Y = 0, ширина = 2400, высота = 1308}

Я также изменил использование Screen.AllScreens с классом Monitor, представленным по адресу: http://wpftutorial.net/ScreenResolutions.html, но это все равно возвращает те же значения. Кто-нибудь когда-либо сталкивался с этой проблемой?

благодаря

Джозеф

Теги:
wpf

1 ответ

1
Лучший ответ

Похоже, у вас на обоих экранах установлен другой DPI.

  • 0
    Согласен. Настройки DPI на Display2 отличаются.
  • 0
    Привет @RomanKo и Тони, вы правы. Изменили настройку dpi на 100% в Панели управления> Дисплей> Проверка «Позвольте мне выбрать одно масштабирование для всех моих дисплеев» и установите размер 100%. Подать заявку и выйти / войти! Готово :)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню