【发布时间】:2011-09-16 07:26:17
【问题描述】:
我想在 WP7 上创建一个表格。这是我目前使用带有 Grid 作为数据模板的 ListBox 的方法。
<ListBox x:Name="ResultsList" Margin="12,0" Grid.Row="1">
<ListBox.Resources>
<DataTemplate x:Key="ResultsListItem">
<Grid d:DesignWidth="385" Height="28">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="88"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="textBlock1" Margin="0,0,24,0"/>
<TextBlock x:Name="textBlock2" Margin="0,0,24,0"
VerticalAlignment="Top" Grid.Column="1"/>
<TextBlock x:Name="textBlock3" Margin="0,0,24,0"
VerticalAlignment="Top" Grid.Column="3"/>
</Grid>
</DataTemplate>
</ListBox.Resources>
<ListBox.ItemTemplate>
<StaticResource ResourceKey="ResultsListItem"/>
</ListBox.ItemTemplate>
</ListBox>
问题是,结果表的列大小不相等。 Grid 的列定义独立于其他行应用于每一行。这意味着,如果 textBlock1 中有长文本,则第 0 列会更大。在下一行中,textBlock1 中的文本可能较短,导致第 0 列也比上一行中的第 0 列短。
如何使所有行中的列大小相等?我不想使用固定宽度,因为当方向从纵向变为横向时,列会自动调整大小。
有 HeaderedItemsControl,但据我了解,它不适用于 Windows Phone 7?
【问题讨论】:
标签: c# silverlight windows-phone-7 silverlight-toolkit