您的位置:首页 > Web前端 > CSS

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

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

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

[StyleTypedPropertyAttribute(Property="ColumnHeaderContainerStyle",StyleTargetType=typeof(GridViewColumnHeader))][ContentPropertyAttribute("Columns")]publicclassGridView:ViewBase,IAddChild
[/code]
从上面的定义中找到两个关键点:

一、设置列标题的样式的属性——ColumnHeaderContainerStyle;

二、目标类型——GridViewColumnHeader

好,有了这些信息,我们就好办了,把样式定义到资源中

<Window.Resources> <Stylex:Key="st"TargetType="GridViewColumnHeader"> <Style.Setters> <SetterProperty="Background"> <Setter.Value> <LinearGradientBrushStartPoint="0.5,0"EndPoint="0.5,1"> <GradientStopColor="White"Offset="0"/> <GradientStopColor="Orange"Offset="1"/> </LinearGradientBrush> </Setter.Value> </Setter> </Style.Setters> </Style> <c:Empsx:Key="epc"/> </Window.Resources>
[/code]

接着我们定义ListView,把样式应用到Gridview的ColumnHeaderContainerStyle属性上。

<ListViewItemsSource="{BindingSource={StaticResourceepc}}">
<ListView.View>
<GridViewAllowsColumnReorder="True"ColumnHeaderContainerStyle="{StaticResourcest}">
<GridViewColumnDisplayMemberBinding="{BindingPath=Name}"Header="员工姓名"/>
<GridViewColumnDisplayMemberBinding="{BindingPath=Age}"Header="员工年龄"/>
</GridView>
</ListView.View>
</ListView>






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: