我有一个WPF画布和许多形状(StreamGeometry / Path)添加到它上面。我定义了ScaleTransform以缩放到特定区域。
我已经放大了画布中的任意空间,并且形状已经被缩放。现在,是否可能获取在Canvas可见区域内的形状。
谢谢任何指针。
我已经放大了画布中的任意空间,并且形状已经被缩放。现在,是否可能获取在Canvas可见区域内的形状。
谢谢任何指针。
这能帮到您吗?
遍历画布的所有子形状,并对于每个 myShape 检查以下内容...
hitArea
= new EllipseGeometry(
new Point(Canvas.GetLeft(myShape), Canvas.GetTop(myShape)),
1.0,
1.0);
VisualTreeHelper.HitTest(
myShape, null,
new HitTestResultCallback(HitTestCallback),
new GeometryHitTestParameters(hitArea));
public HitTestResultBehavior HitTestCallback(HitTestResult result)
{
if (result.VisualHit == myShape)
{
//// This shape is on the visible area.
}
}