wpf 想获取鼠标下的元素名,因为一个容器内的元素太多了,想知道当前鼠标点的那一个好操作找了代码看不懂,请帮忙看一下啊
public static T FindVisualParent<T>(UIElement element) where T : UIElement
{
UIElement parent = element;
while (parent != null)
{
var correctlyTyped = parent as T;
if (correctlyTyped != null)
{
return correctlyTyped;
}
parent = VisualTreeHelper.GetParent(parent) as UIElement;
}
return null;
}
两者结合一下,我们的GetElementUnderMouse方法便可以如下书写:
public static T GetElementUnderMouse<T>() where T: UIElement
{
return FindVisualParent<T>(Mouse.DirectlyOver as UIElement);
}