继续聊WPF——设置网格控件列标题的样式

我很奇怪的是,微软那厮是怎么搞的,Blend里面居然不能编辑GridView的样式,十万般无奈之下,只好手写XAML来处理了。

要想知道一个控件的样式是如何设置,看控件类的定义很重要,我们来看看GridView是如何定义的:

[StyleTypedPropertyAttribute(Property = "ColumnHeaderContainerStyle", StyleTargetType = typeof(GridViewColumnHeader))][ContentPropertyAttribute("Columns")]public class GridView : ViewBase, IAddChild

从上面的定义中找到两个关键点:
一、设置列标题的样式的属性——ColumnHeaderContainerStyle;
二、目标类型——GridViewColumnHeader
好,有了这些信息,我们就好办了,把样式定义到资源中
    <Window.Resources>
        <Style x:Key="st" TargetType="GridViewColumnHeader">
            <Style.Setters>
                <Setter Property="Background">
                    <Setter.Value>
                        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                            <GradientStop Color="White" Offset="0"/>
                            <GradientStop Color="Orange" Offset="1"/>
                        </LinearGradientBrush>
                    </Setter.Value>
                </Setter>
            </Style.Setters>
        </Style>
        <c:Emps x:Key="epc" />
    </Window.Resources>


接着我们定义ListView,把样式应用到Gridview的ColumnHeaderContainerStyle属性上。
 <ListView ItemsSource="{Binding Source={StaticResource epc}}">
 <ListView.View>
 <GridView AllowsColumnReorder="True" ColumnHeaderContainerStyle="{StaticResource st}">
 <GridViewColumn DisplayMemberBinding="{Binding Path=Name}" Header="员工姓名"/>
 <GridViewColumn DisplayMemberBinding="{Binding Path=Age}" Header="员工年龄"/>
 </GridView>
 </ListView.View>
 </ListView>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值