首先,我已将列定义提供给主网格,我在其中动态创建网格:
public void create_grid()
{
ColumnDefinition colDef11 = new ColumnDefinition();
ColumnDefinition colDef22 = new ColumnDefinition();
ColumnDefinition colDef33 = new ColumnDefinition();
LayoutRoot.ColumnDefinitions.Add(colDef11);
LayoutRoot.ColumnDefinitions.Add(colDef22);
LayoutRoot.ColumnDefinitions.Add(colDef33);
}
然后我正在创建网格:
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
Grid mygrid = new Grid() { Height = 250, Width = 432 };
mygrid.Background = new SolidColorBrush(Windows.UI.Colors.Aqua);
string k = "gdr" + h ;
mygrid.Name = k;
_grid.Add(k, mygrid);
tb_id_copy.Add(h);
LayoutRoot.Children.Add(mygrid);
Grid.SetColumn(mygrid, j);
Grid.SetRow(mygrid, i);
h++;
r++;
}
RowDefinition rowDefj1 = new RowDefinition() ;
LayoutRoot.RowDefinitions.Add(rowDefj1);
}
但是无论如何只创建了两行网格。总共创建了九个网格,但它们相互重叠。我在下面创建了网格截图。
答案 0 :(得分:1)
你的外部for循环说for (int i = 0; i < 2; i++)
。这只是两个值,这是你在这里使用的:Grid.SetRow(mygrid, i);
。此外,LayoutRoot.RowDefinitions.Add(rowDefj1);
仅执行两次。
应该是
for (int i = 0; i < 3; i++)