How can I determine if the mouse cursor is over a given uielement?
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 h开发者_JAVA百科as 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?
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
}
}
精彩评论