.NET中的多个监视器
无论硬件配置如何,是否从.NET的Screen.AllScreens
返回所有显示? 例如,在一台PC上,您可以:
- video卡输出两个显示=总共2个显示
- video卡每个显示1个显示=总共2个显示,
- video卡每个显示2个显示器= 6个显示器,
- Eyefinity卡可显示6个显示屏(在显示端口上)
在所有这些情况下,如果我使用Screen.AllScreens
,我可以单独访问每个显示器吗?
另外,如果我有一张扩展模式的卡,这意味着2个显示器插入一张卡但是它只是一个大桌面(我在工作中使用的是什么)怎么办? 我还可以指定要在一个屏幕上显示的内容吗?
是的,Windows并不关心屏幕如何通过video适配器分布。 它只是为每个屏幕提供了自己的坐标,具体取决于您在Display小程序中如何排列它们。 通过将其位置和大小设置为适合Screen.Bounds,您可以在特定的窗口上显示窗口
扩展桌面不会影响屏幕数量。
假设每个显示器有1个屏幕应该是安全的。 虽然某些硬件可能会报告错误的显示计数,但这种情况非常罕见。 在这种情况下,您会在控制面板中注意到您的计数不正确。
AllScreens
属性将列出Windows在控制面板中显示的相同监视器。 例如,如果将Eyefinity设置为单个大表面(SLS),它将在列表中显示为单个条目; 如果你将它设置为6个separete监视器,它将是列表中的6个条目。