WPF获取鼠标下的元素

有没有一种WPF的方式来获取MouseMove事件下的鼠标下的元素数组?


从“WPF Unleashed”,第383页:

视觉命中测试可以告诉你所有与某个位置相交的Visual ,你必须使用接受HitTestResultCallback委托的[VisualTreeHelper.]HitTest方法。 在此版本的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;
}

有关更多信息,请参阅VisualTreeHelper.HitTest的MSDN文档。


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


你可以使用VisualTreeHelper.HitTest吗?

http://lukieb.blogspot.com/2008/07/visualtreehelperhittest.html

链接地址: http://www.djcxy.com/p/39537.html

上一篇: WPF Get Element(s) under mouse

下一篇: Unable to nest JSON Rails