DataGrid列标题,正确的样式

时间:2011-12-21 18:17:55

标签: c# wpf xaml datagrid

我想更改DataGrid列标题的填充和颜色。填充工作正常,但如果我更改背景颜色,单元格夹子会消失,并且不再有鼠标悬停或鼠标按压影响单元格。这就是我在做什么 -

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Collection}" AlternatingRowBackground="#FFF7F7F7">
    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="Padding" Value="20,10,20,10"/>
            <Setter Property="Background" Value="#FFAACCFF"/>
        </Style>
    </DataGrid.ColumnHeaderStyle>
    ...
    ...
    ...
</DataGrid>

有谁知道如何正确更改背景颜色?我还想改变鼠标和鼠标按下事件的颜色。我认为它与触发器有关,任何人都知道吗?

编辑:这是我的DataGrid标题的图片,因为你可以看到没有夹子和没有鼠标悬停颜色变化(它没有显示在截图中,但我的鼠标位于Property2之上)。 enter image description here

2 个答案:

答案 0 :(得分:0)

您可能会考虑在Row PrePainting或Row PostPainting事件期间更改行颜色;它可以让你更好地控制你想要做的一些小事,并允许你根据网格/行中的值来自定义它。

答案 1 :(得分:0)

我建议您为ControlTemplate定义自己的DataGridColumnHeader。在该模板中定义您自己的抓手和颜色。

正如您所提到的,您可以使用触发器来更改控件模板中的颜色。互联网上充满了使用触发器来改变颜色的例子,例如看看this post