2016-05-27 3 views
2

У меня есть следующий DataGrid:Добавить отступы в DataGridTextColumn в WPF

<DataGrid x:Name="RecodersSummary" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" BorderThickness ="1" IsReadOnly ="True" Loaded="RecordersSummary_Loaded" GridLinesVisibility="All" AutoGenerateColumns="False"> 
<DataGrid.Resources> 
<Style TargetType="{x:Type DataGridColumnHeader}"> 
    <Setter Property="BorderBrush" Value="Black"/> 
    <Setter Property="BorderThickness" Value="1,1,1,1"/> 
</Style> 
</DataGrid.Resources> 
<DataGrid.Columns> 
    <DataGridTextColumn Header="{DynamicResource Summary_FirstColumnHeader}" Width="Auto" IsReadOnly="True" Binding="{Binding Path=Summary}"/> 
    <DataGridTextColumn Header="{DynamicResource Summary_SecondColumnHeader}" Width="Auto" IsReadOnly="True" Binding="{Binding Path=Totals}"/> 
    <DataGridTextColumn Header="{DynamicResource Summary_ThirdColumnHeader}" Width="Auto" IsReadOnly="True" Binding="{Binding Path=Centralized}"/> 
    <DataGridTextColumn Header="{DynamicResource Summary_ForthColumnHeader}" Width="Auto" IsReadOnly="True" Binding="{Binding Path=Standalone}"/> 
    <DataGridTextColumn Header="{DynamicResource Summary_FifthColumnHeader}" Width="Auto" IsReadOnly="True" Binding="{Binding Path=Temporary}"/> 
    <DataGridTextColumn Header="{DynamicResource Summary_SixthColumnHeader}" Width="Auto" IsReadOnly="True" Binding="{Binding Path=Other}"/> 
</DataGrid.Columns> 

При этом ширина текста, отображаемого в заголовке столбца имеет ту же ширину, как текст и выглядит стесненных.

В приведенном выше примере, как я могу добавить прописку слева и справа от текста, чтобы колонка заголовка немного шире текста?

+2

Добавить '' в 'DataGridColumnHeader' Style – Nkosi

ответ

-1

Может ли это сделать трюк?

<Style TargetType="{x:Type DataGridCell}"> 
    <Setter Property="Padding" Value="6 0"/> 
</Setter> 
+0

Нет, это не меняет заголовок столбца любой шире. –

1

Вы можете применить дополнение к стилю заголовка столбца.

<DataGrid x:Name="RecodersSummary" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" BorderThickness ="1" IsReadOnly ="True" Loaded="RecordersSummary_Loaded" GridLinesVisibility="All" AutoGenerateColumns="False"> 
    <DataGrid.Resources> 
     <Style x:Key="DataGrid_ColumnHeadStyle1" TargetType="{x:Type DataGridColumnHeader}"> 
      <Setter Property="BorderBrush" Value="Black"/> 
      <Setter Property="BorderThickness" Value="1,1,1,1"/> 
      <Setter Property="Padding" Value="12,6,12,6"/> 
     </Style> 
     <Style TargetType="{x:Type DataGrid}"> 
      <Setter Property="ColumnHeaderStyle" Value="{StatisResource DataGrid_ColumnHeadStyle1}"/> 
     </Style> 
    </DataGrid.Resources> 
    <!-- code removed for brevity --> 
</DataGrid> 

Вы также можете применить стиль к сетке напрямую.

<DataGrid x:Name="RecodersSummary" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" BorderThickness ="1" IsReadOnly ="True" Loaded="RecordersSummary_Loaded" GridLinesVisibility="All" AutoGenerateColumns="False"> 
    <DataGrid.ColumnHeaderStyle> 
     <Style TargetType="{x:Type DataGridColumnHeader}"> 
      <Setter Property="BorderBrush" Value="Black"/> 
      <Setter Property="BorderThickness" Value="1,1,1,1"/> 
      <Setter Property="Padding" Value="12,6,12,6"/> 
     </Style> 
    </DataGrid.ColumnHeaderStyle> 
    <!-- code removed for brevity --> 
</DataGrid>