我有一个WPF多边形,它可以有不同数量的边。我想动态地得到每个交叉点的X,Y坐标。
我可以使用下面的代码
获取多边形的相对点 Point relativePoint = polygon.TransformToAncestor(LayoutRoot)
.Transform(new Point(0, 0));
如果多边形是方形的,我可以通过将高度和宽度添加到相对点来获得坐标。
double polygonWidth = polygon.ActualWidth/2;
double polygonHeight = polygon.ActualHeight/2;
但是如果它不是正方形,那么怎样才能得到所有的X,Y为这个交叉点进行协调。
答案 0 :(得分:1)
给定相对于Polygon的坐标点,您可以轻松检查:
if (polygon.RenderedGeometry.FillContains(point))
{
...
}
如果要在鼠标单击时检查,可以通过调用
来获取相对点var point = e.GetPosition(polygon);
其中e
是MouseButtonEventArgs
。