如何定义网格布局

时间:2013-09-16 07:37:24

标签: layout windows-phone-8 grid

我仍然无法理解如何定义灵活的网格布局...... 我喜欢有一个网格有n行(我不知道有多少)和m列(我不知道有多少)..我希望细胞有一个特定的高度和宽度(50和50)....

这是我可以设置行和列定义的方法:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="350" />
    <ColumnDefinition Width="130" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="2*" />
    <RowDefinition Height="*"/>
</Grid.RowDefinitions>

但是这样我只需要设置两列和三行......没有办法为每个列和网格设置列定义和行定义?

感谢名单

2 个答案:

答案 0 :(得分:1)

回答最初的问题,这就是你如何开始C#: -

         Grid Layout = new Grid();

         foreach (your condition)
         { 
         //
             Layout.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto });
             Layout.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(50)});
             Layout.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(50) });
         }

答案 1 :(得分:0)

你就是这样做的

public MainPage()
    {
        InitializeComponent();
        var def = new ColumnDefinition();
        def.Width = new GridLength(100);
        gdTest.ColumnDefinitions.Add(def);
        StackPanel sp = new StackPanel();
        sp.Background = new SolidColorBrush( Colors.Brown);
        sp.SetValue(Grid.ColumnProperty, 1);
        gdTest.Children.Add(sp);

    }

的Xaml

<Grid x:Name="gdTest" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  Margin="5,0,5,0">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <StackPanel Grid.Column="0" x:Name="TestStack" Background="Red"/>


</Grid>

添加代码并测试:)