我需要创建大量的行和列才能正确管理自定义控件。所以我的问题是,是否有可能获得与下面显示的代码相同的结果?以一种更干净的方式,这感觉非常不实用......
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
答案 0 :(得分:2)
您可以查看AutoGrid语法,如下所示:
<AutoGrid RowCount="2" RowHeight="35" Columns="100,auto">
<Label />
<TextBox />
<Label />
<TextBox />
</AutoGrid>
答案 1 :(得分:0)
您可以使用附加属性并创建行为以实现相同目的。 Here是此
的示例答案 2 :(得分:0)
您可以在后面的代码中执行相同操作,但通常您应该像在XAML中那样执行此操作。
// Add 10 Rows
for (int i = 0; i < 10; i++)
{
var height = GridLength.Auto;
if (i == 0)
height = new GridLength(1, GridUnitType.Star);
layoutGrid.RowDefinitions.Add(new RowDefinition()
{
Height = height
});
}
// Add 7 Columns
for (int i = 0; i < 7; i++)
{
var width = GridLength.Auto;
if (i == 0)
width = new GridLength(1, GridUnitType.Star);
layoutGrid.ColumnDefinitions.Add(new ColumnDefinition()
{
Width = width
});
}
答案 3 :(得分:0)
Wouter对AutoGrid的回答的另一个替代方法是ApexGrid。代码看起来与AutoGrid非常相似。
<apex:ApexGrid Rows="Auto,*" Columns="100,Auto">
<Label Grid.Row="0" Grid.Column="0" />
<TextBox Grid.Row="0" Grid.Column="1" />
<Label Grid.Row="1" Grid.Column="0" />
<TextBox Grid.Row="1" Grid.Column="1" />
</apex:ApexGrid>