如何确定鼠标光标是否超过给定的元素?

时间:2009-11-13 12:31:30

标签: silverlight element mouseover uielement

我需要确定鼠标光标是否超过给定的UIElement。即使另一个元素放在它上面,该方法也应该有效(因为它有一个更大的Zindex)。

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

有什么想法吗?

1 个答案:

答案 0 :(得分: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
      }
 }