0
我有一个XAML GridView,其每一行都包含一个Grid。我试图把所有的列对齐,就像我在HTML表格中一样,但我没有任何运气。这是我的XAMLXAML GridView中的固定宽度列
<Grid Grid.Row="1" Grid.ColumnSpan="2" Margin="20,0,20,0" Background="BlueViolet">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Name" Margin="5" />
<TextBlock Grid.Column="1" Text="WordCount" Margin="5" />
<TextBlock Grid.Column="2" Text="Created" Margin="5" />
<TextBlock Grid.Column="3" Text="Updated" Margin="5" />
<TextBlock Grid.Column="4" Text="Version" Margin="5" />
</Grid>
<GridView Grid.Row="2" Grid.ColumnSpan="2" x:Name="Files_Grid" Margin="20,0,20,20" ItemsSource="{Binding ElementName=App_Frame, Path=DataContext.FilesCollection}"
ScrollViewer.VerticalScrollMode="Enabled" ScrollViewer.VerticalScrollBarVisibility="Visible" VerticalContentAlignment="Stretch" VerticalAlignment="Stretch">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Tapped="Files_Grid_Row_Tapped" RightTapped="Files_Grid_Row_RightTapped" Tag="{Binding GUID}" Width="Auto" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Visibility="{Binding Name_Edit_Visibility}" Margin="5" Orientation="Horizontal">
<TextBox Text="{Binding Name, Mode=TwoWay}"></TextBox>
<Button Tapped="Files_Grid_Row_Edit_Name_OK_Tapped">OK</Button>
<Button Tapped="Files_Grid_Row_Edit_Name_Cancel_Tapped">Cancel</Button>
</StackPanel>
<TextBlock Grid.Column="0" Text="{Binding LatestVersion.Name}" Margin="5"></TextBlock>
<TextBlock Grid.Column="1" Text="{Binding LatestVersion.WordCount}" HorizontalAlignment="Right" Margin="5"></TextBlock>
<TextBlock Grid.Column="2" Text="{Binding Created}" Margin="5" HorizontalAlignment="Right"></TextBlock>
<TextBlock Grid.Column="3" Text="{Binding LatestVersion.Updated}" Margin="5" HorizontalAlignment="Right"></TextBlock>
<TextBlock Grid.Column="4" Text="{Binding LatestVersion.VersionNumber}" Margin="5" HorizontalAlignment="Right"></TextBlock>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel HorizontalAlignment="Left" VerticalAlignment="Stretch" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="VerticalContentAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch" />
</Style>
</GridView.ItemContainerStyle>
</GridView>
正如你可以看到我已经尝试设置VerticalAlignment和VerticalContentAlignment舒展几乎无处不在我能想到的,但由此产生的GridView的每一行都有稍微不同的列宽。
如何让每个GridView行具有相同的宽度列,而不需要实际设置固定宽度?
我想对齐列一起。我会尝试扩展文本块。谢谢! – roryok 2015-02-16 10:12:53