我仍然无法理解如何定义灵活的网格布局...... 我喜欢有一个网格有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>
但是这样我只需要设置两列和三行......没有办法为每个列和网格设置列定义和行定义?
感谢名单
答案 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>
添加代码并测试:)