C# 获取网格面板中的单元数并访问它们

C# 获取网格面板中的单元数并访问它们,c#,wpf,grid,C#,Wpf,Grid,有可能知道网格中的单元数吗?我是否可以通过某种方式访问它们,以便为它们中的每一个附加一个子项 例如,如果我有一个2行x 3列的网格: <Grid Name="myGrid"> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Grid Grid.Row="0">

有可能知道网格中的单元数吗?我是否可以通过某种方式访问它们,以便为它们中的每一个附加一个子项

例如,如果我有一个2行x 3列的网格:

<Grid Name="myGrid">
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>

    <Grid Grid.Row="0">
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
    </Grid>

   <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
    </Grid>
</Grid>

我不知道如何实现这一点(如果可能)。

行定义和列定义属于网格,它们彼此独立

修复xaml定义以生成2x3网格(而不是当前的2x1、1x3、1x3网格)

如果所有单元格大小相同,则可以使用UniformGrid:

<UniformGrid Name="myGrid" Rows="2" Columns="3"/>

for(int r = 0; r < myGrid.Rows; r++)
{
    for(int c = 0; c < myGrid.Columns; c++)
    {
        var B = new Border { Margin = new Thickness(5), Background = Brushes.Green };
        myGrid.Children.Add(B);
    }
}

for(int r=0;r
@mm8抱歉,恐怕我不知道您的意思在给定的xaml示例中有3个
元素,而不是一个有2行3列的元素。。。好啊事实上,我是WPF的新手,我是通过这种方式学习的。但也许按照你说的方式做会更好?
<Grid Name="myGrid">
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>

    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
</Grid>
for(int r = 0; r < myGrid.RowDefinitions.Count; r++)
{
    for(int c = 0; c < myGrid.ColumnDefinitions.Count; c++)
    {
        var B = new Border { Margin = new Thickness(5), Background = Brushes.Green };
        B.SetValue(Grid.RowProperty, r);
        B.SetValue(Grid.ColumnProperty, c);
        myGrid.Children.Add(B);
    }
}
<UniformGrid Name="myGrid" Rows="2" Columns="3"/>

for(int r = 0; r < myGrid.Rows; r++)
{
    for(int c = 0; c < myGrid.Columns; c++)
    {
        var B = new Border { Margin = new Thickness(5), Background = Brushes.Green };
        myGrid.Children.Add(B);
    }
}