Wpf 如何寻找父母?
我在建筑方面:Wpf 如何寻找父母?,wpf,parent,Wpf,Parent,我在建筑方面: Grid a = ((((usercontrol.Parent as DockPanel).Parent as ScrollViewer).Parent as Grid) 是否可以找到树或父元素 示例:Grid a=GetFirstParent(usercontrol,“Grid”)Grid-is-Type元素使用该类 它有一个方法GetParent,返回控件的父对象(实际上是一个DependencyObject)。Grid a=userControl.FindParent()
Grid a = ((((usercontrol.Parent as DockPanel).Parent as ScrollViewer).Parent as Grid)
是否可以找到树或父元素
示例:Grid a=GetFirstParent(usercontrol,“Grid”)Grid-is-Type元素使用该类
它有一个方法GetParent,返回控件的父对象(实际上是一个DependencyObject)。Grid a=userControl.FindParent();
公共静态T FindParent(此DependencyObject startElement)
其中T:DependencyObject
{
DependencyObject父对象=GetParentObject(startElement);
如果(父项==null)
返回null;
T typedParent=父项为T;
if(typedParent!=null)
{
返回类型parent;
}
返回FindParent(父级);
}
这里只是您的设计说明。如果“as”运算符无法转换,它将返回null。使此特定功能极其依赖于用户控件的视觉结构。如果更改它,可能会抛出null异常
Grid a = userControl.FindParent<Grid>();
public static T FindParent<T>(this DependencyObject startElement)
where T : DependencyObject
{
DependencyObject parent = GetParentObject(startElement);
if (parent == null)
return null;
T typedParent = parent as T;
if (typedParent != null)
{
return typedParent;
}
return FindParent<T>(parent);
}