更改GridViewColumn标题颜色

时间:2015-05-28 11:32:54

标签: wpf listview

我有这个ListView:

<ListView  Name="lvFiles" Background="Transparent" BorderThickness="0">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="File name" />
            <GridViewColumn Header="Size" Width="50" />
        </GridView>
    </ListView.View>
</ListView>

如何设置标题颜色?

1 个答案:

答案 0 :(得分:6)

我个人没有使用过GridView,但是通过快速网络搜索,我找到了:

GridView Column Header Styles and Templates Overview

该页面链接到其他页面,以解释您可以使用GridView列标题执行的各种操作。看起来有多种方法来设置&#34;颜色&#34; (不确定您的意思是Foreground还是Background),但使用Style似乎就像您想要的那样。您可以将样式设置为应用于所有列标题,如下所示:

<GridView>
    <GridView.ColumnHeaderContainerStyle>
        <Style TargetType="{x:Type GridViewColumnHeader}">
            <!-- Set any properties you want to set -->
            <Setter Property="Background" Value="LightBlue" />
            <Setter Property="Foreground" Value="Black" />
            <Setter Property="FontWeight" Value="Bold" />
        </Style>
    </GridView.ColumnHeaderContainerStyle>
</GridView>

您可以覆盖特定列的标题样式,如下所示:

<GridViewColumn Header="Something">
    <GridViewColumn.HeaderContainerStyle>
        <Style TargetType="{x:Type GridViewColumnHeader}">
            <!-- Set any properties you want to set -->
            <Setter Property="Background" Value="DarkBlue" />
            <Setter Property="Foreground" Value="White" />
            <Setter Property="FontWeight" Value="Bold" />
        </Style>
    </GridViewColumn.HeaderContainerStyle>
</GridViewColumn>

编辑:虽然您可以使用styes和数据模板(我在本答案的顶部链接的概述中介绍)来自定义大多数内容,但有些内容无法自定义,因为它们被烘焙到控件模板中 - 例如每个列标题上方和下方出现的边框。如果您需要修改其中任何内容,则需要设置一种样式,将Template属性设置为您创建的自定义ControlTemplate

如果您想为列标题创建自己的控件模板,建议您先将example template复制到应用程序资源中。然后调整你需要调整的部分。请记住,在控件上设置Template属性会完全替换模板,这意味着您必须定义要使用的整个模板,而不是简单地定义您希望与默认值不同的部分。