0
<Style TargetType="DataGridColumnHeader">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
                <Border x:Name="buttonBorderOuter"
                        BorderBrush="#DBDBDB"
                        BorderThickness="1"
                        Background="#00ECECEC"
                        Padding="2">
                    <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                      SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                    <Border.Triggers>
                        <EventTrigger RoutedEvent="MouseEnter">
                            <BeginStoryboard>
                                <Storyboard>
                                    ...
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                        <EventTrigger RoutedEvent="MouseLeave">
                            <BeginStoryboard>
                                <Storyboard>
                                    ...
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </Border.Triggers>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

上面的代码显示了我StyleDataGridColumnHeader. 它与MouseEnterandMouseLeave效果很好,但有一些我不喜欢的小东西。我现在在下面有什么。

在此处输入图像描述

这里的问题是每个Cell都有Header圆形边框。我希望在 2 之间CellsHeader1 条直线。此外,当我单击 中的其中一个时CellsHeader没有显示用于排序的箭头,也没有突出显示已排序的列。

有人有我可以自己编辑以实现我想要的模板吗?或者我必须编辑哪些部分?

4

1 回答 1

1

默认情况下,DataGridColumnHeadersPresenter 在 DataGrid Header 的背景中绘制一个全宽的附加列 Header。通过省略虚拟标题,您可以获得所需的内容。将该样式添加到您的样式中:

    <Style TargetType="{x:Type DataGridColumnHeadersPresenter}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type DataGridColumnHeadersPresenter}">
                    <Grid>
                        <ItemsPresenter />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
于 2014-06-28T06:20:12.670 回答