2009-12-07 81 views
1

我已經創建了一個應用程序,它在每個顯示器上顯示最上面的窗口,以覆蓋所有可用的位置。使用WPF在多屏幕上繪圖

然後,我想允許在窗口上繪製一個矩形。所以,我創建了一個矩形,當鼠標移動並單擊鼠標時,我將其添加到窗口中... 除了當我畫一個開始於窗口並在另一個窗口上完成的矩形時,這是工作的。當然,因爲它不是同一個窗口...

我該怎麼做才能同時在兩個窗口上繪圖?

感謝您的幫助,

回答

0

您可以創建一個跨兩個屏幕拉伸的窗口。

使用System.Windows.Forms中的Screens集合(或WPF中的任何位置)和WorkingArea屬性來計算窗口的正確範圍。

小心使用多顯示器設置,其中主屏幕是輔助屏幕的另一面,或者屏幕堆疊在一起。

我們在我們的應用程序中成功完成此操作。

+0

因此,我可能會覆蓋未使用的空間,例如,如果屏幕大於其他 – Tim 2009-12-07 12:31:00

+0

,這是該方法的潛在缺陷。我們對部署應用程序的環境擁有一定的控制權,所以這不是一個問題。 – 2009-12-07 12:32:55

0

另一個(也許更好)的方法是將矩形的數據存儲在模型類中(使用MVVM方法)。然後,每個視圖都會查看虛擬畫布的單獨部分。這樣,他們都會聽取模型中數據的更新並相應地繪製其顯示部分。