我有一些搜索,但找不到与我想要的类似的东西。我有兴趣知道如何使用C#在次级/第三级监视器或投影仪上显示不同的内容。基本上,我想要实现的是在一个特定屏幕(主要显示)上具有某种形式的演示者视图(láPowerPoint),并在辅助屏幕或投影仪上具有输出。我从来没有真正尝试过具有多个显示输出的东西,因此任何指导都可能必须处于相当明显的水平。

如果有人可以将我指向如何在C#中处理这种事情的正确方向,那将不胜感激!

有帮助吗?

解决方案

您可以使用 System.Windows.Forms.Screen.AllScreens 访问所有监视器Windows知道的列表的属性。如果您想利用用户尚未配置的显示,它会变得更加困难 - 您可能需要使用DirectX初始化并访问显示适配器。

其他提示

只是为了扩展Keven的答案(I +1'D IT),屏幕阵列为您提供了一系列屏幕对象。屏幕对象具有称为ISPRIMARY的属性,您可以使用该属性来确定哪个是主要屏幕,哪个是辅助屏幕(duh),它还具有称为WorkingArea的属性,该属性是一个矩形,它可以使您返回所有坐标第二个屏幕。关于这一点的很酷的事情是,即使假设辅助屏幕被配置为主屏幕的左侧,workingarea.x也将是一个负数,您可以在此处或其他任何形式。

您需要与之互动的主要类之一是 屏幕 (这是在Winforms名称空间中)。通常,所有屏幕都被视为一组工作区域,您可以使用屏幕类获取每个屏幕。

您可以像这样获得所有屏幕...

Screen [] screens = Screen.AllScreens;

这里 是关于在C#中进行多监视编程的简短文章。

另请记住,将要在辅助屏幕上显示的窗口上的窗口设置为“手动”,否则将始终在主屏幕上显示。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top