<Grid x:Name="LayoutRoot" HorizontalAlignment="Center" VerticalAlignment="Center" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Button Width="150" Height="50" x:Name="Btn1" Content="Button1" Grid.Row="0" Grid.Column="0"/>
<Button Width="150" Height="50" x:Name="Btn2" Content="Button2" Grid.Row="0" Grid.Column="1"/>
<Button Width="150" Height="50" x:Name="Btn3" Content="Button3" Grid.Row="2" Grid.Column="0"/>
<Button Width="150" Height="50" x:Name="Btn4" Content="Button4" Grid.Row="2" Grid.Column="1"/>
</Grid>
wpf中的C#代码
Visual childVisual = (Visual)VisualTreeHelper.GetChild(LayoutRoot,0);
使用上面的代码,我可以得到网格的第一个子节点(LayoutRoot)。但是我想通过它的行或列获取网格子节点。我应该怎么做。
先谢谢。
答案 0 :(得分:16)
根据每个孩子的Grid.GetRow
和GetColumn
返回来过滤Grid.Children
。
e.g。
var itemsInFirstRow = LayoutRoot.Children
.Cast<UIElement>()
.Where(i => Grid.GetRow(i) == 0);