3

我需要确定鼠标光标是否在给定的UIElement. 即使将另一个元素放在其顶部,该方法也应该有效(因为它具有更大的 Zindex)。

我尝试使用 MouseEnter/Leave 事件,但如果元素不是最顶部的元素,则不会触发 mouseenter。

有任何想法吗?

4

1 回答 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
      }
 }
于 2009-11-13T13:57:16.450 回答