从WP7 C中的Grid布局中删除空行#

时间:2014-05-22 06:58:29

标签: c# xaml windows-phone-7 grid

我以编程方式创建了具有'n'个行数和列数的网格布局。

Grid test = new Grid();
for (int i = 1; i <= cols1; i++)
{
    for (int j = 1; j <= rows1; j++)
    {
        if (array[i, j] != null)
        {
            ColumnDefinition col = new ColumnDefinition();
            col.Width = new GridLength(50);
            test.ColumnDefinitions.Add(col);
            RowDefinition row = new RowDefinition();
            row.Height = new GridLength(50);
            test.RowDefinitions.Add(row);

            Image img = new Image();
            img.source = new BitmapImage(new Uri("testimg.jpg", urikind.Relative));
            Grid.SetRow(img, j);
            Grid.SetColumn(img, i);
            test.Children.Add(img);
        }
    }
}

空格值未添加到网格中。这样就有空列。它在空列中腾出空间 如何避免空列。
任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

你应该这样做:

Grid test = new Grid();
for (int j = 0; j <= rows1; j++)
{ 
    RowDefinition row = new RowDefinition();
    row.Height = new GridLength(50);
    test.RowDefinitions.Add(row);
    for (int i = 0; i <= cols1; i++)
    {
        if (array[i, j] != null)
        {
            if(j == 0)
            { 
                ColumnDefinition col = new ColumnDefinition();
                col.Width = new GridLength(50);
                test.ColumnDefinitions.Add(col);
            }
            Image img = new Image();
            img.source = new BitmapImage(new Uri("testimg.jpg", urikind.Relative));
            Grid.SetRow(img, j);
            Grid.SetColumn(img, i);
            test.Children.Add(img);
        }
        else
        {
            i--;
        }
    }
}

注意:

您应该避免为每个元素添加ColumnDefinitionRowDefinition。 您应该为每个列添加ColumnDefinition 一个 ,并为每个添加RowDefinition 一个。< / p>

答案 1 :(得分:0)

将空ColumnDefinition / RowDefinition的MaxWidth设置为0。