3
我需要確定鼠標光標是否超過給定UIElement
。該方法應該工作,即使其他元素放在它上面(因爲它有更大的Zindex)。如何確定鼠標光標是否位於給定的元素上?
我嘗試使用MouseEnter/Leave事件,但如果元素不是最上面的元素,mouseenter不會觸發。
任何想法?
我需要確定鼠標光標是否超過給定UIElement
。該方法應該工作,即使其他元素放在它上面(因爲它有更大的Zindex)。如何確定鼠標光標是否位於給定的元素上?
我嘗試使用MouseEnter/Leave事件,但如果元素不是最上面的元素,mouseenter不會觸發。
任何想法?
您可以使用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
}
}