0

我动态生成我的列,并想拉伸它们的标题,就像这里

在此处输入图像描述

一般来说,列可以有不同的名称,因此无法设置一个固定的MinWidth. 是否可以通过更改DataGrid.ColumnHeaderStyle来设置标题文本的水平边距之类的东西?这是我的 XAML:

<DataGrid x:Name="ResultDataGrid" Margin="2"
    ItemsSource="{Binding MyData, Mode=OneWay}"
    DisplayMemberPath="Persons"
    SelectedItem="{Binding SelectedPerson}"
    GridLinesVisibility="None" 
    AutoGenerateColumns="False" 
    CanUserAddRows="False" 
    CanUserDeleteRows="False" 
    CanUserReorderColumns="False"
    IsReadOnly="True"
    SelectionMode="Single"
    AllowDrop="True">
    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="HorizontalContentAlignment" Value="Center" />
            <Setter Property="Height" Value="25" />
            <Setter Property="FontWeight" Value="Black" />
            <Setter Property="SeparatorBrush" Value="LightGray" />
        </Style>
    </DataGrid.ColumnHeaderStyle>
</DataGrid>     
4

1 回答 1

1

您可以添加另一个Setter到您Style的更改ContentTemplateTextBlock左/右页边距设置

<DataGrid.ColumnHeaderStyle>
   <Style TargetType="{x:Type DataGridColumnHeader}">
      <Setter Property="HorizontalContentAlignment" Value="Center" />
      <Setter Property="Height" Value="25" />
      <Setter Property="FontWeight" Value="Black" />
      <Setter Property="SeparatorBrush" Value="LightGray" />
      <Setter Property="ContentTemplate">
         <Setter.Value>
            <DataTemplate>
               <TextBlock Text="{Binding}" Margin="20,0"/>
            </DataTemplate>
         </Setter.Value>
      </Setter>
   </Style>
</DataGrid.ColumnHeaderStyle>
于 2014-11-12T12:48:20.587 回答