5
<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)を取得できますが、行または列によってグリッドの子を取得したいと思います。そのために私は何をすべきですか。

前もって感謝します。

4

1 に答える 1

18

Grid.Childrenwhat に基づいてフィルタリングし、すべての子Grid.GetRowGetColumn返します。

例えば

var itemsInFirstRow = LayoutRoot.Children
                          .Cast<UIElement>()
                          .Where(i => Grid.GetRow(i) == 0);
于 2012-08-30T11:17:47.787 に答える