【发布时间】:2014-08-23 04:44:58
【问题描述】:
我将构建一个在所有可用显示器上全屏显示的应用。 对于每个可用的监视器,我将加载不同的内容。因此,如果系统检测到 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
【问题讨论】:
-
忘记winforms。无论项目要求如何,都不建议将其用于任何新项目。在 WPF 中无法更轻松、更好地实现的 winform 绝对是您无法实现的。
-
我看到的所有支持多显示器的示例都需要在 wpf 项目中使用 system.windows.forms dll
-
这并不意味着您将使用 winforms 构建应用程序。您可能会使用该 dll(它实际上包装了本机 Win32 的东西)或直接绕过它调用 Win32 的东西。您甚至可以从 RefenceSource 获取源代码并将其复制粘贴到您自己的代码中。甚至使用 WPF 的
System.Windows.SystemParameters。无论如何,您应该使用 WPF 来构建实际的 UI。