RowDefinitions и ColumnDefinitions принадлежат Grid, и они независимы друг от друга.
исправление определения xaml для создания сетки 2x3 (вместо текущих сеток 2x1, 1x3, 1x3)
<Grid Name="myGrid">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
</Grid>
Ячейки сетки не представлены никаким контролем. Это просто прямоугольные области в сетке, определяемые во время аранжировки. Используйте Grid.RowProperty
и Grid.ColumnProperty
присоединенный DP для позиционирования дочерних элементов в 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:
<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);
}
}