Как я могу определить, находится ли курсор мыши над данным элементом? - PullRequest
3 голосов
/ 13 ноября 2009

Мне нужно определить, находится ли курсор мыши над данным UIElement. Метод должен работать, даже если поверх него размещен другой элемент (поскольку он имеет больший индекс Zindex).

Я пытался использовать события MouseEnter / Leave, но mouseenter не срабатывает, если элемент не является самым верхним элементом.

Есть идеи?

1 Ответ

9 голосов
/ 13 ноября 2009

Вы можете использовать класс 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
      }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...