WPF是否有办法在MouseMove事件上获取鼠标下的元素数组?
答案 0 :(得分:41)
您还可以尝试使用Mouse.DirectlyOver属性来获取鼠标下最顶层的元素。
答案 1 :(得分:37)
来自“WPF Unleashed”,第383页:
视觉命中测试可以通知您 关于与a相交的所有
Visual
位置,[...]你必须使用[...] 接受a的[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;
}
答案 2 :(得分:3)