我需要一种方法将一些绝对坐标(相对于主屏幕)映射到相对坐标到某个屏幕。
例如,如果您配置了两个屏幕,如果主屏幕是右侧屏幕,则有一些有效的负坐标指向左侧屏幕。我需要将这些绝对坐标始终转换为相对于左侧屏幕的正数。
编辑:目标是使用
知道某些可用屏幕中的某些绝对坐标是否有效 Screen.WorkingArea.Contains(thePoint),
迭代可用的屏幕。
谢谢
答案 0 :(得分:2)
这适用于任何屏幕配置:
static Point GetRelativeCoordinates(Point absoluteCoordinates)
{
var screen = Screen.FromPoint(absoluteCoordinates);
return new Point(absoluteCoordinates.X - screen.Bounds.Left, absoluteCoordinates.Y - screen.Bounds.Top);
}
Bound
属性存储屏幕Top
和Left
角的绝对坐标([0, 0]
是主屏幕的左上角),因此转换为绝对值无论你有多少个屏幕,坐标到相对的坐标都非常简单。
我还没有对代码进行测试,但应该工作。