WPF GridViewHeader样式问题

WPF GridViewHeader样式问题,wpf,gridview,Wpf,Gridview,我正在尝试设置我的第一个WPF ListView/GridView,但在设置列标题样式方面遇到了问题。我目前有3个问题。以下是GridView的当前视图: 我想删除分隔列标题的白色垂直边框 我想消除鼠标悬停的效果。此屏幕截图将鼠标放在第三列上,将背景变成白色 如何在不拧紧单个柱的情况下覆盖其水平对齐 这是代码的样子: <Style x:Key="GrayHeader" TargetType="{x:Type GridViewColumnHeader}"> <Setter

我正在尝试设置我的第一个WPF ListView/GridView,但在设置列标题样式方面遇到了问题。我目前有3个问题。以下是GridView的当前视图:

  • 我想删除分隔列标题的白色垂直边框

  • 我想消除鼠标悬停的效果。此屏幕截图将鼠标放在第三列上,将背景变成白色

  • 如何在不拧紧单个柱的情况下覆盖其水平对齐

  • 这是代码的样子:

    <Style x:Key="GrayHeader" TargetType="{x:Type GridViewColumnHeader}">
       <Setter Property="Background">
          <Setter.Value>
             <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                <GradientStop Offset="0.0" Color="#373638" />
                <GradientStop Offset="1.0" Color="#57595B" />
             </LinearGradientBrush>
          </Setter.Value>
       </Setter>
       <Setter Property="Foreground" Value="White" />
       <Setter Property="Padding" Value="5, 5" />
       <Setter Property="BorderThickness" Value="0" />
       <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
    
    <ListView ItemsSource="{Binding Source={StaticResource 
                                            EmployeeInfoDataSource}}" 
              Margin="0,20,0,20">
       <ListView.ItemContainerStyle>
          <Style TargetType="{x:Type ListViewItem}"  >
             <Setter Property="Height" Value="24" />
             <Setter Property="Background" Value="#7BB3DC" />
             <Setter Property="Foreground" Value="#000000" />
             <Setter Property="FontSize" Value="12" />
             <Setter Property="HorizontalContentAlignment" Value="Stretch" />
             <Setter Property="BorderThickness" Value="1" />
             <Setter Property="BorderBrush" Value="Gray" />
          </Style>
       </ListView.ItemContainerStyle>
    
       <ListView.View>
          <GridView AllowsColumnReorder="false" 
                    ColumnHeaderToolTip="Employee Information"
                    ColumnHeaderContainerStyle="{StaticResource GrayHeader}"
                    >
             <GridViewColumn Width="200" Header="First Name">
                <GridViewColumn.CellTemplate>
                   <DataTemplate>
                      <TextBlock Text="{Binding Path=FirstName}"/>
                   </DataTemplate>
                </GridViewColumn.CellTemplate>
             </GridViewColumn>
    
             <GridViewColumn Width="300" Header="LastName">
                <GridViewColumn.CellTemplate>
                   <DataTemplate>
                      <TextBlock Text="{Binding LastName}" 
                                 HorizontalAlignment="Right"/>
                   </DataTemplate>
                </GridViewColumn.CellTemplate>
             </GridViewColumn>
    
             <GridViewColumn DisplayMemberBinding="{Binding Path=EmployeeNumber}" 
                             Width="200" Header="Employee Number"/>
          </GridView>
       </ListView.View>
    </ListView>
    
    
    
    谢谢你的建议

    编辑: 为了澄清我的第三个问题。代码如下:

    <GridViewColumn Width="300">
        <GridViewColumnHeader HorizontalAlignment="Right">
           Last Name
        </GridViewColumnHeader>
    
    这就产生了这个。它可以工作,但是现在在实际文本的左边有额外的空白


    我解决了我的问题。问题是列标题的作用类似于按钮,因此必须应用新模板。将其更改为文本块将删除所有这些问题

    <Style x:Key="GridHeaderCenter" TargetType="{x:Type GridViewColumnHeader}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
                                <TextBlock Text="{TemplateBinding Content}" Padding="5" Width="{TemplateBinding Width}" TextAlignment="Center">
                                    <TextBlock.Background>
                                        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                            <GradientStop Offset="0.0" Color="#373638" />
                                            <GradientStop Offset="1.0" Color="#77797B" />
                                        </LinearGradientBrush>
                                    </TextBlock.Background>
                                </TextBlock>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                    <Setter Property="OverridesDefaultStyle" Value="True" />
                    <Setter Property="Background" Value="Green" />
                    <Setter Property="Foreground" Value="White" />
                    <Setter Property="FontSize" Value="12" />
                    <Setter Property="Background">
                        <Setter.Value>
                            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                <GradientStop Offset="0.0" Color="#373638" />
                                <GradientStop Offset="1.0" Color="#77797B" />
                            </LinearGradientBrush>
                        </Setter.Value>
                    </Setter>
                </Style>
    
    <GridViewColumn Width="100" HeaderContainerStyle="{ StaticResource GridHeaderCenter}" Header="Transfer">