命中测试支持
VisualTreeHelper 类中 HitTest 方法的用途是确定几何或点坐标值是否在给定对象的呈现内容内,如控件或图形元素。 例如,可以使用命中测试确定对象边框内的鼠标单击是否落在圆形的几何内。 还可以选择重写命中测试的默认实现,以执行自己的自定义命中测试计算。
下图显示非矩形对象的区域与其边框之间的关系。
示意图
有效命中测试区域示意图
命中测试和 Z 顺序
Windows Presentation Foundation (WPF) 可视化层支持针对点或几何下的所有对象(而不仅仅是最顶层对象)进行命中测试。 结果按 z 顺序返回。 但是,作为参数传递到 HitTest 方法的视觉对象确定将对可视化树的哪个部分进行命中测试。 可以针对整个可视化树或它的任意部分进行命中测试。
在下图中,圆形对象在正方形和三角形对象之上。 如果只希望对其 z 顺序值为最顶层的视觉对象进行命中测试,则可以设置可视化命中测试枚举,使其在第一个项之后从 HitTestResultCallback 返回 Stop 以停止命中测试遍历。
可视化树的 z 顺序示意图
如果要枚举特定点或几何下的所有视觉对象,请从 HitTestResultCallback 返回 Continue。 这意味着可以为其他对象之下的视觉对象进行命中测试,即使它们被完全遮挡也是如此。 有关详细信息,请参阅“使用命中测试结果回叫”部分中的示例代码。
还可以对透明的视觉对象进行命中测试。
标签:开篇,对象,可视化,测试,命中,视觉,WPF,Hitest From: https://www.cnblogs.com/cdaniu/p/16838545.html