我需要通过其标识号在屏幕中显示对话框,例如我有这种情况
我想在第四个显示一些东西,当我使用 Screen.AllScreens 获取所有屏幕时,我的第四个屏幕是数组中的 0 元素,因为 AllScreens 不是按缩进数而是按顺序返回屏幕。所以也许有人知道如何从 Screen 类中获取标识号,或者如何通过其标识号获取屏幕坐标和边界。
更新:
DeviceName 并不总是与标识号相对应(见下图):
我需要通过其标识号在屏幕中显示对话框,例如我有这种情况
我想在第四个显示一些东西,当我使用 Screen.AllScreens 获取所有屏幕时,我的第四个屏幕是数组中的 0 元素,因为 AllScreens 不是按缩进数而是按顺序返回屏幕。所以也许有人知道如何从 Screen 类中获取标识号,或者如何通过其标识号获取屏幕坐标和边界。
更新:
DeviceName 并不总是与标识号相对应(见下图):
如果你看screen.DeviceName
你应该得到\\\\.\\DISPLAY1
,\\\\.\\DISPLAY2
等等。你可以用它来搜索\\\\.\\DISPLAY4
。
获取屏幕编号(肮脏的方式,但它有效):
var sceenId = -1;
var targetScreen = Screen.FromPoint(Cursor.Position);
for (var i = 0; i < Screen.AllScreens.Length; i++)
{
if (!Equals(targetScreen, Screen.AllScreens[i]))
continue;
sceenId = i;
break;
}
通过标识号获取屏幕坐标和边界:
Screen.AllScreens[sceenId].Bounds