Я пытаюсь создать окно WPF, которое охватит всю Настольную рабочую область. В WinForms я сделал бы это путем вкладывания Объединения всех границ System.Windows.Forms.Screen.AllScreens
.
Существует ли эквивалентный тип или другой механизм для получения границ всего рабочего стола в WPF, или я должен использовать тип WinForms?
Попробуйте свойства SystemParameters.VirtualScreen* (Top, Left, Height и Width). http://msdn.microsoft.com/en-us/library/system.windows.systemparameters.virtualscreenheight(v=VS.100).aspx
Не используйте winforms api, потому что он не учитывает тот факт, что единицы измерения WPF - не пиксели. Я столкнулся с этой проблемой совсем недавно, потому что я теряю зрение, и мой монитор настроен на более высокий dpi. Кодовая база, над которой я работал, использовала настройки Winforms, и пользовательский интерфейс был больше, чем мой экран.
Если вы собираетесь использовать winforms api. Посмотрите в этом блоге статью о вычислении коэффициента DPI.
Просто используйте WinForms. Я не думаю, что существует прямой эквивалент WPF.
Вы можно попробовать SystemParameters.VirtualScreenWidth и связанные параметры. Это может не дать такого хорошего результата, как продолжение использования WinForms API.
Единственный недостаток типа WinForms, который я вижу, - это дополнительная зависимость и связанный с ней больший рабочий набор.