首先,我将列定义赋予了要动态创建网格的主网格:
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);
}
但是无论如何只能创建两行网格。总共创建了九个网格,但它们彼此重叠。
最佳答案
您的外部for循环显示for (int i = 0; i < 2; i++)
。这只是两个值,在这里使用的是Grid.SetRow(mygrid, i);
。同样,LayoutRoot.RowDefinitions.Add(rowDefj1);
仅执行两次。
它应该是
for (int i = 0; i < 3; i++)
关于c# - 动态创建的网格不显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23407767/