![]() |
1
9
只需将MonitorFromWindow与MONITOR\u DefaultToFull标志一起使用即可。如果返回值为null,则窗口不可见。随后,您可以传递MONITOR_DEFAULTTONEAREST,以便能够在最近的监视器上重新定位窗口。 |
![]() |
2
2
1997年6月《Microsoft Systems Journal》中关于多监视器支持的所有基础知识: 在多显示器设置上定位对象: |
![]() |
3
1
在.NET中,您可以使用Screen.PrimaryScreen.WorkingArea结构来获取主屏幕的边界(我认为Screen.Screens[x].WorkingArea用于其他监视器),然后使用窗口的Left和Top属性找出窗口的位置(如果它离开屏幕,则顶部和左侧将大于[Screen].Width和.Height)。 |
![]() |
4
1
在.NET中,我将在Screen.AllScreen中的每个屏幕上迭代,然后调用Screen.Bounds.Contains()传递表单的矩形,如果您想确保所有窗口都在边界(*)内,或者调用Screen.Bounds.IntersectsWith(),如果您只想确保表单的至少一部分可见。
这是一个较长的答案。较短的一条是:据我所知,没有简单的方法。 |
![]() |
5
1
无论您做什么,请考虑多个监视器,这些监视器的坐标可能在任何方向上都与(0,0)相距数千像素。我讨厌一个应用程序强迫自己回到另一个屏幕上,经常把我当时可能在玩的任何全屏游戏弄得一团糟。 |
![]() |
6
1
另见 How can I get the active screen dimensions? 这是我在表单构造器中使用的代码。在您卸下笔记本电脑或其他任何操作后,可以快速地将表单移动到可见屏幕上,从而消除一些屏幕不动产。为您自己的消费而精炼。
|
![]() |
7
0
看起来像 GetMonitorInfo() |
![]() |
8
0
这已经是很久以前的事了,但是Marin Plante的回答满足了我的需要,所以我写了一个简单的扩展方法:
我可以帮助别人! |
![]() |
9
-1
嗯。这可能没有帮助,但当我使用VB时,你可以使用screen.width和screen.height,然后使用window.x和window.y。。。 当然,我不知道如何在多个监视器上工作。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |