Рисование на мультиэкране с помощью WPF - PullRequest
1 голос
/ 07 декабря 2009

Я создал приложение, которое отображает самое верхнее окно на каждом мониторе, чтобы охватить все доступное место.

Тогда я хотел бы разрешить рисовать прямоугольник на окнах. Итак, я создаю прямоугольник, который я добавляю в окно при перемещении мыши и щелчке мыши ... Это работает, за исключением случаев, когда я рисую прямоугольник, который начинается в окне и заканчивается в другом. Конечно, потому что это не одно и то же окно ...

Как я могу сделать так, чтобы рисовать в обоих окнах одновременно?

Спасибо за вашу помощь,

Ответы [ 2 ]

0 голосов
/ 07 декабря 2009

Другим (и, возможно, лучшим) подходом к этому было бы сохранение данных о прямоугольниках в классе модели (используя подход MVVM). Затем каждый вид смотрит на отдельную часть виртуального холста. Таким образом, они оба слушают обновления данных из модели и соответственно рисуют свою часть дисплея.

0 голосов
/ 07 декабря 2009

Вы можете создать окно, которое простирается через оба экрана.

Используйте коллекцию Screens в System.Windows.Forms (или там, где она есть в WPF) и свойство WorkingArea, чтобы вычислить правильные экстенты окна.

Будьте осторожны с установками с несколькими мониторами, где основные экраны расположены на противоположной стороне от вторичных экранов или если экраны расположены друг над другом.

Мы успешно делаем это в нашем приложении.

...