[英]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.