表头效果如下图
表头实现
主要依靠xaml代码实现
<UserControl x:Class="ScoreTools.Views.UcClassInfo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ScoreTools.Views"
xmlns:c="clr-namespace:ScoreTools.CustomControl"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" Background="Gainsboro" Name="ClassCoreWin">
<UserControl.Resources>
<LinearGradientBrush x:Key="DataGridHeaderBackGround" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFC8FFC8" Offset="1" />
<GradientStop Color="#FF64FF64" Offset="0" />
</LinearGradientBrush>
<!-- Column header style -->
<Style x:Key="C1ColumnHeader" TargetType="DataGridColumnHeadersPresenter">
<Setter Property="Background" Value="{StaticResource DataGridHeaderBackGround}"/>
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="Foreground" Value="Red"/>
</Style>
</UserControl.Resources>
<Grid Margin="5" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="18">班级列表</TextBlock>
<UniformGrid Columns="2" Grid.Row="0" Grid.Column="1">
<TextBlock Text="{Binding Path=StudentScores.Count, StringFormat='本班共有学生{0}人'}" FontSize="14" Foreground="Red" Margin="10 0 0 0" ></TextBlock>
<c:FButton FIcon="" Command="{Binding DatagridViewToExcelCommand}" CommandParameter="{Binding ElementName=classGrid}" HorizontalAlignment="Right">
导出至Excel</c:FButton>
</UniformGrid>
<ListBox x:Name="lstBoxClass" Width="150" Grid.Row="1" ItemsSource="{Binding StuClassList}" Padding="5" >
<!--鼠标左键双击-->
<ListBox.ItemTemplate>
<DataTemplate>
<Border CornerRadius="0" Margin="2" BorderBrush="Black" BorderThickness="0,0,0,0.2" >
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Width="25" Grid.Column="0" Opacity="0.8" Source="/StudentMS;component/Resources/w128x1187122.t.ico"></Image>
<TextBlock Grid.Column="1" Padding="3" Margin="10,0,0,0" Text="{Binding Path=StuClassName}" ToolTip="鼠标左键双击,浏览本班级!">
<TextBlock.InputBindings>
<MouseBinding Command="{Binding DataContext.SelectListBoxItemCommand,
ElementName=ClassCoreWin}"
CommandParameter="{Binding ElementName=lstBoxClass}"
MouseAction="LeftDoubleClick"></MouseBinding>
</TextBlock.InputBindings>
</TextBlock>
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<DataGrid x:Name="classGrid" Grid.Row="1" Grid.Column="1" ItemsSource="{Binding StudentScores}"
AutoGenerateColumns="False" CanUserAddRows="False"
CellStyle="{StaticResource DataGridCellStyle1}"
ColumnHeaderStyle="{DynamicResource DataGridColumnHeaderStyle1}" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="编号" Binding="{Binding 编号}" ></DataGridTextColumn>
<DataGridTextColumn Header="姓名" Binding="{Binding 姓名}" ></DataGridTextColumn>
<DataGridTextColumn Header="校名次" Binding="{Binding 校名次}" ></DataGridTextColumn>
<DataGridTextColumn Header="班名次" Binding="{Binding 班名次}" ></DataGridTextColumn>
<!--语文及排名-->
<DataGridTemplateColumn Width="100" CellStyle="{x:Null}" IsReadOnly="True">
<DataGridTemplateColumn.HeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridColumnHeader">
<Grid >
<Grid.RowDefinitions>
<RowDefinition Height="1*"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label HorizontalContentAlignment="Center" Grid.Column="0" Grid.Row="0" Content="语文" Grid.ColumnSpan="2" BorderBrush="#cccccc" BorderThickness="0,0,1,1" SnapsToDevicePixels="True"/>
<Label HorizontalContentAlignment="Center" Grid.Column="0" Grid.Row="2" Content="分数" BorderBrush="#cccccc" BorderThickness="0,0,1,0" SnapsToDevicePixels="True"/>
<Label HorizontalContentAlignment="Center" Grid.Column="1" Grid.Row="2" Content="排名" BorderBrush="#cccccc" BorderThickness="0,0,1,0" SnapsToDevicePixels="True"/>