我当前正在尝试为GridView设置样式,我想将GridViewColumnHeader的颜色从默认的Aero蓝色和白色效果悬停在其上方时更改为静态蓝色。但是现在所做的是,它更改了空GridView的颜色,我想我需要定位一个按钮,因为它是从按钮基础iirc派生的。
我已经尝试为该特定问题创建自己的样式,我更改了一些设置方法和样式触发器。
<ListView Margin="10" Name="lvUsers">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Header="Age" Width="50" DisplayMemberBinding="{Binding Age}" />
<GridViewColumn Header="Mail" Width="150" DisplayMemberBinding="{Binding Mail}" />
</GridView>
</ListView.View>
</ListView>
与资源相关的
<Style TargetType="GridViewColumnHeader">
<Setter Property="Background" Value="Green"/>
<Setter Property="Foreground" Value="Yellow"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
预期的输出是当用户将鼠标悬停在Name
上时,它将颜色从默认的航空蓝白色变为静态蓝色。
编辑 当用户将鼠标悬停在GridViewColumnHeader上时,我想更改颜色
答案 0 :(得分:0)
使用50年前的按钮实现列表视图标题:)。最近没有。绝对不在WPF中。当您要更改列的背景颜色时,正是在做您需要做的事情。
如果要设置标题本身的样式,则需要修改控件模板。您所追求的部分实际上只不过是一些用于填充矩形的嵌套边框,网格和渐变笔刷。但是,这并不能说明标题中的所有功能(拖放,单击,调整大小等),因此模板和支持内容实际上很多。我定制的是大约400行Xaml。
您可以将模板转储到Blend中。不幸的是,笔刷没有使用按键,因此没有任何捷径:)。