是否有一个与System.Windows.Forms.Screen等效的WPF?

dka*_*man 17 wpf desktop

我正在尝试创建一个包含整个桌面工作区的WPF窗口.在WinForms中,我通过获得所有界限的联盟来做到这一点System.Windows.Forms.Screen.AllScreens.

是否有相同的类型或其他机制来获取WPF中整个桌面的边界,还是需要使用WinForms类型?

Mic*_*own 14

尝试SystemParameters.VirtualScreen*(顶部,左侧,高度和宽度)属性.http://msdn.microsoft.com/en-us/library/system.windows.systemparameters.virtualscreenheight(v=VS.100).aspx

不要使用winforms api,因为它没有考虑到WPF的测量单位不是像素的事实.我最近才遇到这个问题,因为我失去了视力并且我的显示器设置为更高的dpi.我正在使用的代码库使用Winforms设置,UI比我的屏幕大.

如果你打算使用winforms api.请看这篇关于计算DPI因子的博客文章.

  • 只是坦率地指出:这正是 OP 想要的,仅此而已。虽然“Screen”可以单独枚举每个显示器,但“VirtualScreen”只是总面积。 (4认同)

小智 7

我已成功使用WpfScreenHelper 0.3.0.0,目前在Github或Nuget上, https://github.com/micdenny/WpfScreenHelper

它完成了.NET框架多年前应该做的事情.我需要检查WPF中的任何屏幕上是否存在某些坐标,如下所示: