如何确定鼠标光标是否悬停在指定的UI元素上?

3
我需要确定鼠标光标是否悬停在给定的 UIElement 上。该方法应该能够在另一个元素被放置在其上方的情况下正常工作(因为它具有更大的Zindex)。
我尝试使用MouseEnter / Leave事件,但是如果该元素不是最顶层元素,则mouseenter不会触发。
有什么想法吗?
1个回答

9
您可以使用VisualTreeHelper类来实现此功能。
 void MouseMove(object sender, MouseEventArgs e)
 {
      Point p = e.GetPosition((UIElement)sender);
      var elems = VisualTreeHelper.FindElementsInHostCoordinates(p, (UIElement)sender)
      if (elems.Contains(theUIElementIamLookingFor))
      {
         //element is somewhere under the mouse
      }
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接