2015-05-28 153 views
1

我有这样的ListView:更改GridViewColumn标题颜色

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

如何设置页眉颜色?

回答

5

我没有用过GridView个人,但快速的网络搜索导致我:

GridView Column Header Styles and Templates Overview

该网页链接到其他网页解释你可以GridView列标题做各种事情。它看起来像有多种方法来设置“颜色”(不知道如果你的意思是ForegroundBackground),但使用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属性完全取代了模板,这意味着您必须定义要使用的整个模板,而不是简单地定义要与默认不同的部分。

+0

非常感谢,请参阅我的标题的当前状态:http://s3.postimg.org/65zkepm03/Untitled.png如何删除标题的上一行? (只有上面的那个)和标题名称之间的行 –

+0

不幸的是,该边框内置在[列标题控件的控制模板]中(https://msdn.microsoft.com/en-us/library/ms788747。 aspx)(名为'ColumnHeaderBorder')。除非您编写自己的模板,否则无法修改它。 – Xavier

+0

如果您想要探索某些内容,请使用关于覆盖控件模板的信息更新答案。 – Xavier