WPF,DataGrid的列标题没有了分割线
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="Background" Value="YellowGreen" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
</DataGrid.ColumnHeaderStyle>
设置了DataGrid的列头的样式,设置了Background的颜色,这一设置不打紧,列头之间的分割线没有了。
请问,如何设置列头之间的分割线的颜色,找遍了都没找到设置这个的属性
TargetType="Thumb">
<Setter Property="Background" Value="#FF494949">
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Border Padding="{TemplateBinding Padding}"
Background="Transparent">
<Rectangle HorizontalAlignment="Center"
Width="1"
Fill="{TemplateBinding Background}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush" Value="#FF494949">
</Setter>
</Style>
<Style x:Key="{x:Type GridViewColumnHeader}"
TargetType="GridViewColumnHeader">
<Setter Property="Foreground" Value="White"/>
<Setter Property="HorizontalContentAlignment"
Value="Center" />
<Setter Property="VerticalContentAlignment"
Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GridViewColumnHeader">
<Grid>
<Border x:Name="HeaderBorder" Background="Black"
Padding="0" Height="22">
<ContentPresenter x:Name="HeaderContent"
Margin="0,0,0,1"
RecognizesAccessKey="True"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<Thumb x:Name="PART_HeaderGripper"
HorizontalAlignment="Right" Margin="0 0 0 0"
Style="{StaticResource GridViewColumnHeaderGripper}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
试试这个吧 自己改下吧 我原来写的 分割线可以出来
[解决办法]
这个你要重写DataGridColumnHeader的模板的。对一个列头用一个三行三列的Grid作为模板。然后至于分隔线,随便你自己怎么设置了。
下面一个很简单的例子,你可以参考下面代码实现自己想要的样式,如加背景色,渐变等。
<Style TargetType="DataGridColumnHeader" x:Key="DataGridHeaderStyleSample" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridColumnHeader">
<Grid Name="Root">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Rectangle x:Name="BackgroundRectangle" Stretch="Fill" Fill="AliceBlue" Grid.ColumnSpan="2" Grid.RowSpan="2" />
<ContentPresenter x:Name="HeaderText" Grid.RowSpan="2" Content="{TemplateBinding Content}" Cursor="{TemplateBinding Cursor}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" />
<Rectangle Name="VerticalSeparator" Grid.RowSpan="2" Grid.Column="2" Width="1" VerticalAlignment="Stretch" Fill="Black" Visibility="Visible" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
... ...
... ...
<DataGrid ColumnHeaderStyle="{StaticResource DataGridHeaderStyleSample}">
<Setter Property="Background" Value="White" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="LightYellow"/>
<!-- can be set Gradual color-->
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns >
<!--{Binding TaskDesc}" -->
<DataGridTemplateColumn Header=" 任务名称" Width="60*" HeaderStyle="{StaticResource DataGridColumnHeaderStyle}" >
<DataGridTemplateColumn.CellTemplate >
<DataTemplate >
<Button ToolTip="{Binding TaskDesc}" HorizontalContentAlignment="Right" HorizontalAlignment="Left" Margin="20,0,0,0" Name="btnName" Cursor="Hand" Tag="{Binding Id}" Content="{Binding TaskDesc}" CommandParameter="{Binding WFTaskType}" Click="btnName_Click" Template="{StaticResource TextBtnTaskName}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<!---->
</DataGridTemplateColumn>
<DataGridTemplateColumn Header=" 完成时间" Width="40*" HeaderStyle="{StaticResource DataGridColumnHeaderStyle}" >
<DataGridTemplateColumn.CellTemplate >
<DataTemplate >
<TextBlock ToolTip="{Binding Path=DataItem.TaskDesc}" VerticalAlignment="Center" Margin="20,0,0,0" Text="{Binding CreateTime, StringFormat=yyyy年MM月dd日HH时mm分}" HorizontalAlignment="Left" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>