我有一个DataGrid,我试图将垂直线放在Headers中 - 就像datagrid具有放置垂直和水平网格线的功能一样。但是我怎样才能将GridLines分隔为Headers ?现在我有
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="LightBlue" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="FontSize" Value="18" />
<Setter Property="FontFamily" Value="Calibri" />
</Style>
</DataGrid.Resources>
答案 0 :(得分:3)
DataGridColumnHeader
是ButtonBase
,您可以设置其BorderThickness
和BorderBrush
的样式以达到您想要的效果,您也可以将标题设为中心,因此我们也需要设置HorizontalContentAlignment
:
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="LightBlue" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="FontSize" Value="18" />
<Setter Property="FontFamily" Value="Calibri" />
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="BorderThickness" Value="0,0,1,0"></Setter>
<Setter Property="BorderBrush" Value="Black"/>
</Style>
</DataGrid.Resources>
答案 1 :(得分:1)
使用HeaderTemplate。快速执行此操作的方法:
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}"
Header="{Binding HeaderName}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<Border BorderThickness="0,0,1,0"
BorderBrush="Black">
<TextBlock Text="{Binding Content, RelativeSource={RelativeSource Mode=TemplatedParent}}"
Margin="5"/>
</Border>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>