当前位置:  开发笔记 > 编程语言 > 正文

WPF在鼠标下获取元素

如何解决《WPF在鼠标下获取元素》经验,为你挑选了2个好方法。

WPF是否有办法在MouseMove事件上获取鼠标下的元素数组?



1> Andy..:

您还可以尝试使用Mouse.DirectlyOver属性来获取鼠标下最顶层的元素.



2> David Schmit..:

从" WPF Unleashed ",第383页:

视觉命中测试可以告知您与位置相交的所有内容 Visual,[...]您必须使用[VisualTreeHelper.]HitTest接受HitTestResultCallback委托的 方法 .在此版本的HitTest返回之前,将为每个相关调用一次委托Visual,从最顶层开始到最底层结束.

这种回调的签名是

HitTestResultBehavior Callback(HitTestResult result)

并且它必须返回HitTestResultBehaviour.Continue以接收进一步的命中,如下所示(来自MSDN上的链接页面):

// Return the result of the hit test to the callback.
public HitTestResultBehavior MyHitTestResult(HitTestResult result)
{
    // Add the hit test result to the list that will be processed after the enumeration.
    hitResultsList.Add(result.VisualHit);

    // Set the behavior to return visuals at all z-order levels.
    return HitTestResultBehavior.Continue;
}

有关详细信息,请参阅MSDN文档VisualTreeHelper.HitTest.


有关示例,请参阅以下msdn链接(部分:使用命中测试结果回调).[http://msdn.microsoft.com/en-us/library/ms752097.aspx](http://msdn.microsoft.com/en-us/library/ms752097.aspx)
推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有