2015-02-11 62 views
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行具有相同的寬度列,而不需要實際設置固定寬度?

回答

1

我不太確定我的確瞭解您的問題, 您是否嘗試對齊列的內容? 如果是這樣,請嘗試拉伸文本框 您是否嘗試將標頭GridGridView的內容對齊? 如果因此要儘量增加頭部數據爲GridView與GridView的數據

+0

我想對齊列一起。我會嘗試擴展文本塊。謝謝! – roryok 2015-02-16 10:12:53