很长一段时间以来,我一直在努力重新设计Gridview标头。我想获得一个带有标题边框的简单网格的外观。 通过更改HeaderContainerStyle和HeaderTemplate,我最终得到了一个texbox和实际标题内的边框,如下所示:
我想结束这样的事情:
这是我到目前为止所尝试的:
<GridViewColumn.HeaderTemplate>
<DataTemplate>
<Border BorderThickness="1 1 0 1" BorderBrush="Black" >
<DockPanel LastChildFill="True" >
<TextBlock Text="{Binding}" HorizontalAlignment="Stretch"/>
</DockPanel>
</Border>
</DataTemplate>
</GridViewColumn.HeaderTemplate>
我需要更改以获得所需的结果?
谢谢
答案 0 :(得分:0)
您可以通过定义自己的自定义DataGridColumnHeader样式来更改列标题的外观。请参阅以下示例标记。它应该给你这个想法。
<DataGrid>
<DataGrid.Resources>
<Style x:Key="ColumnHeaderGripperStyle" TargetType="{x:Type Thumb}">
<Setter Property="Width" Value="8"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Cursor" Value="SizeWE"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Header..." Binding="{Binding}">
<DataGridTextColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Grid>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<Thumb x:Name="PART_LeftHeaderGripper" HorizontalAlignment="Left" Style="{StaticResource ColumnHeaderGripperStyle}"/>
<Thumb x:Name="PART_RightHeaderGripper" HorizontalAlignment="Right" Style="{StaticResource ColumnHeaderGripperStyle}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="LightGreen" />
<Setter Property="Foreground" Value="Maroon" />
<Setter Property="Padding" Value="5" />
<Setter Property="TextBlock.FontWeight" Value="SemiBold" />
</Style>
</DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>