2009-11-13 75 views
3

我需要確定鼠標光標是否超過給定UIElement。該方法應該工作,即使其他元素放在它上面(因爲它有更大的Zindex)。如何確定鼠標光標是否位於給定的元素上?

我嘗試使用MouseEnter/Leave事件,但如果元素不是最上面的元素,mouseenter不會觸發。

任何想法?

回答

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 
     } 
} 
相關問題