Reputation: 31
I need to determine whether the mouse cursor is over a given UIElement
. The method should work even if another element is placed on top of it (because it has a bigger Zindex).
I tried using MouseEnter/Leave events but mouseenter does not trigger if the element is not the top most element.
Any ideas?
Upvotes: 3
Views: 2891
Reputation: 189457
You can use the VisualTreeHelper
class for this function.
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
}
}
Upvotes: 9