2015-05-28 154 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