我想更改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之上)。
答案 0 :(得分:0)
您可能会考虑在Row PrePainting或Row PostPainting事件期间更改行颜色;它可以让你更好地控制你想要做的一些小事,并允许你根据网格/行中的值来自定义它。
答案 1 :(得分:0)
我建议您为ControlTemplate
定义自己的DataGridColumnHeader
。在该模板中定义您自己的抓手和颜色。
正如您所提到的,您可以使用触发器来更改控件模板中的颜色。互联网上充满了使用触发器来改变颜色的例子,例如看看this post