///根据类型查找子元素
publicListGetChildObjects(DependencyObjectobj,Typetypename)whereT:FrameworkElement
{
DependencyObjectchild=null;
ListchildList=newList();
for(inti=0;i<=VisualTreeHelper.GetChildrenCount(obj)-1;i++)
{
child=VisualTreeHelper.GetChild(obj,i);
if(childisT&&(((T)child).GetType()==typename))
{
childList.Add((T)child);
}
childList.AddRange(GetChildObjects(child,typename));
}
returnchildList;
}
1.1调用办法:
[C#]纯文本检查
ListinitToolBarWeChatUserSp=GetChildObjects(name,typeof(StackPanel));
2.查找父元素
[C#]纯文本检查
///查找父元素
publicstaticTFindParent(DependencyObjecti_dp)whereT:DependencyObject
{
DependencyObjectdobj=(DependencyObject)VisualTreeHelper.GetParent(i_dp);
if(dobj!=null)
{
if(dobjisT)
{
return(T)dobj;
}
else
{
dobj=FindParent(dobj);
if(dobj!=null&&dobjisT)
{
return(T)dobj;
}
}
}
returnnull;
}
2.1调用办法:
Border tbBorder = FindParent<Border>(name);
评论前必须登录!
注册