我需要确定鼠标光标是否超过给定的UIElement
。即使另一个元素放在它上面,该方法也应该有效(因为它有一个更大的Zindex)。
我尝试使用MouseEnter / Leave事件,但如果元素不是最重要的元素,则不会触发mouseenter。
有什么想法吗?
答案 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
}
}