public T FindAncestorOrSelf<T>(DependencyObject obj)
where T : DependencyObject
{
while (obj != null)
{
T objTest = obj as T;
if (objTest != null)
return objTest;
obj = GetParent(obj);
}
return null;
}
public DependencyObject GetParent(DependencyObject obj)
{
if (obj == null)
return null;
ContentElement ce = obj as ContentElement;
if (ce != null)
{
DependencyObject parent = ContentOperations.GetParent(ce);
if (parent != null)
return parent;
FrameworkContentElement fce = ce as FrameworkContentElement;
return fce != null ? fce.Parent : null;
}
return VisualTreeHelper.GetParent(obj);
}
本文介绍了一个用于WPF应用程序中查找指定DependencyObject类型的祖先或自身的通用方法。通过递归方式遍历Visual Tree,直到找到匹配的对象或者到达根节点。
6万+

被折叠的 条评论
为什么被折叠?



