Windows窗体或WPF for Multiple Monitor应用程序(每个监视器获取不同的内容)

时间:2014-08-23 04:44:59

标签: wpf winforms

我将在所有可用的显示器上构建一个全屏应用程序。 对于每个可用的监视器,我将加载不同的内容。因此,如果系统检测到2个监视器,我将生成2个窗口,每个窗口具有不同的内容(它们将是全屏,接管包括任务栏等在内的所有内容)

Windows窗体是否最适合此或wpf。 同样在显示设置中,我假设每个附加显示器都应设置为“扩展桌面”,我将获得正确的工作区域。?

Windows窗体提供了Screen类,但是当我在1920x1080的监视器上运行时,我得到了

Device Name: \\.\DISPLAY1
Bounds: {X=0,Y=0,Width=1280,Height=720}
Type: System.Windows.Forms.Screen
Working Area: {X=0,Y=0,Width=1280,Height=693}
Primary Screen: True

1 个答案:

答案 0 :(得分:1)

WPF可以轻松同时支持多个窗口。如果您使用它们订阅MVVM模式,则可以通过

在两个窗口之间进行交互
  • 将两个窗口绑定到视图模型的同一实例,因此视图模型在它们之间共享。在窗口A中触发的按钮命令可以更新绑定到窗口B中视图的属性,反之亦然,这是一个简单的例子。
  • 实现一个消息传递平台,例如MVVM light off nuget。这允许每个窗口具有自己的视图模型,但使用解耦消息进行交互。在同一示例中,窗口A在通过其视图模型按下按钮时发出消息,窗口b的视图模型侦听该消息并且某些动作更新。

如果您的技能包括,或者您有时间学习,WPF - 请选择该选项。

这个stack overflow answer将帮助您使用框架屏幕集合通过WindowLoad事件控制Windows启动状态。