[英]Get UIElement children from multiple parent
我有一个StackPanel
和一些WrapPanel
。 在每个WrapPanel
内有两个元素:
<StackPanel FlowDirection="RightToLeft" Grid.Column="2" Grid.Row="1" Name="check_boxes_layout">
<WrapPanel>
<CheckBox Name="chk1" Checked="Checked_Changed" Unchecked="Unchecked"></CheckBox>
<Rectangle Width="50" Fill="Red" Name="rec1" Margin="10 2 2 2"/>
</WrapPanel>
<WrapPanel>
<CheckBox Name="chk12" Checked="Checked_Changed" Unchecked="Unchecked"></CheckBox>
<Rectangle Width="50" Fill="Blue" Name="rec2" Margin="10 2 2 2"/>
</WrapPanel>
<StackPanel/>
我想获得所有类型的孩子复选框。我该怎么做?
foreach (var item in check_boxes_layout.Children.OfType<CheckBox>())
{
//this code just return Wrap Panel
}
先感谢您。
使用这个递归函数:
List<UIElement> GetAllChildren(Panel c)
{
List<UIElement> list = c.Children.Cast<UIElement>().ToList();
foreach( var elem in list.OfType<Panel>())
list.AddRange(GetChildren(elem));
return list;
}
不,你可以说:
foreach (var item in GetAllChildren(check_boxes_layout).OfType<CheckBox>())
{
//...
}
我首先通过经纱面板循环并得到它的孩子
foreach (WrapPanel warppanel in check_boxes_layout.Children)
{
foreach (var item in warppanel.Children.OfType<CheckBox>)
{
.
.
.
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.