动态创建的网格未显示

时间:2014-05-01 12:34:47

标签: c# xaml windows-store-apps

首先,我已将列定义提供给主网格,我在其中动态创建网格:

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);
}

但是无论如何只创建了两行网格。总共创建了九个网格,但它们相互重叠。我在下面创建了网格截图。

image of grids being created

1 个答案:

答案 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++)