为何你这么喜欢用Controls,难道你编译的时候就不会提示你错误么。
1.在WPF里,Grid子控件集合用的是Children(UIElementCollection).
2.你应该先判断这个UIElement是否有childern属性(或者你所说的controls),有这个属性的一般是容器控件:grid,border,stackpanel等等,相当于判断这个控件是否是上述的这些控件(或者你说的Grid)。虽然说你是动态创建,但是你也应该知道是创建在哪些容器上。不然你这样直接就用它的“子控件集合”会出错(调试下就知道了)。
3.最终你是要获得这个button,可以试试以下的方法。当然也许还有更好的方法
private Button getMybtn(UIElement uie)
{
if(uie is Grid)
{
foreach(UIElement child in (uie as Grid).Children)
{
if (child is Button)
return (Button)child;
else return getMybtn(child);
}
}
else if(uie is StackPanel)
{
foreach (UIElement child in (uie as StackPanel).Children)
{
if (child is Button)
return (Button)child;
else return getMybtn(child);
}
}
//else if....
//else....
return null;
}