silverlight命中测试

在流程设计器中用到了命中测试,主要使用了VisualTreeHelper.FindElementsInHostCoordinates 方法。有两个重载方法,一个是测试点的命中,一个是测试区域的命中。

测试点的命中:

检索一组对象,这些对象位于某一对象的坐标空间的指定点内。
参数
intersectingPoint
            类型:System.Windows.Point 。要用作确定点的点。
subtree
           类型:System.Windows.UIElement 。要在其内进行搜索的对象。
返回值
           类型:System.Collections.Generic.IEnumerable 。一组可枚举的 UIElement 对象,这些对象被确定位于指定点处和指定子树内的可视化树组合中。

 

测试区域命中

检索一组对象,这些对象位于某一对象的坐标空间的指定 Rect 内。
参数
intersectingRect
         类型:System.Windows.Rect 。 要用作确定区域的 Rect。
subtree
         类型:System.Windows.UIElement 。要在其内进行搜索的对象。
返回值
        类型:System.Collections.Generic.IEnumerable 。一组可枚举的 UIElement 对象,这些对象被确定位于指定点处和指定子树内的可视化树组合中。

 

遇到的问题及解决方法 

当Canvas的父元素是ScrollViewer时调用FindElementsInHostCoordinates函数时,发现命中的元素不正确,需要使用 Application.RootVisual 作为 subtree 输入。

原代码

修改后代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值