2017-02-02 45 views
2

Я пытаюсь изменить размер окна, охватывающего весь экран.wpf изменить размер окна, чтобы потреблять все мониторы

Я попробовал следующее

 win.Left = SystemParameters.VirtualScreenLeft; 
     win.Top = SystemParameters.VirtualScreenTop; 
     win.Width = SystemParameters.VirtualScreenWidth; 
     win.Height = SystemParameters.VirtualScreenHeight; 

Это прекрасно работает на мониторе 1080p (Full HD монитор). Он также работает, когда у меня есть два подключенных монитора, и один из них - Full HD, а другой - монитор HD. Я понимаю, что в таком случае часть части окна никогда не станет видимой, поскольку она выйдет за пределы общего ресурса экрана.

Проблема начинается с монитора 4k. На мониторе 4k он потребляет меньший прямоугольник на экране и не охватывает весь экран. Я понимаю, что это связано с масштабированием (wpf автоматически масштабирует окно), но не в состоянии найти способ преодолеть эту проблему.

Проблема только с монитором 4k. Я предполагаю, что это имеет какое-то отношение к DPI, поскольку монитор 4k имеет более высокий DPI.

Мой вопрос заключается в том, как заставить приложение использовать весь экранный ресурс независимо от разрешения монитора и DPI.

(Обратите внимание, что окно развернуто не будет работать установка, поскольку она не будет охватывать его на несколько мониторов.)

ответ

0

Оказалось, что этот вопрос не был с изменением размеров окна на всех. Окно должным образом изменило размер после указания координат. Однако есть одна вещь, которая может помочь тем, кто хочет делать подобное. Всегда убедитесь, что вы сравниваете полученные значения API с другими значениями из API и WPF с WPF, поскольку WPF дает масштабированные значения.