2009-12-07 70 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方法)。然后,每个视图都会查看虚拟画布的单独部分。这样,他们都会听取模型中数据的更新并相应地绘制其显示部分。