2017-10-14 180 views
1

爲了說明問題的大部分內容,我已經找到了有關CellTemplate和DataTemplate的幾個答案,以及一個HeaderContainerStyle設置,並且他們都沒有工作;結果從沒有變化到崩潰。WPF如何更改gridview列的顏色

我試圖改變列表視圖中每列的第一個條目的顏色(基本上是這樣每列的標題突出顯示)。這是我嘗試過的最近的事情,但沒有成功。任何建議或意見,不勝感激。

<ListView Height="380" VerticalAlignment="Top" HorizontalContentAlignment="Stretch"> 
      <ListView.View> 
        <GridView> 
         <GridViewColumn Header="First" Width="60" > 
          <GridViewColumn.CellTemplate> 
           <DataTemplate> 
            <TextBlock x:Name="Txt" Text="{Binding First}" Background="DarkBlue"/> 
           </DataTemplate> 
          </GridViewColumn.CellTemplate> 
         </GridViewColumn> 
         <GridViewColumn Header="Last" Width="60" DisplayMemberBinding="{Binding Last}" /> 
         <GridViewColumn Header="Group" Width="80" DisplayMemberBinding="{Binding Group}" /> 
        </GridView> 
     </ListView.View> 
</ListView> 
+0

所以,你想改變的_header_每列的顏色? – Evk

+0

@Evk是的,這是正確的。基本上希望頭部變成柔和的藍色,而列表視圖的大部分仍然是白色的。 –

回答

1

下面的代碼是你在找什麼?

第一行:

<GridViewColumn.CellTemplate> 
    <DataTemplate> 
     <TextBlock x:Name="Txt" Text="{Binding First}"/> 
     <DataTemplate.Triggers> 
      <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}"> 
       <Setter TargetName="Txt" Property="Background" Value="DarkBlue"/> 
      </DataTrigger> 
     </DataTemplate.Triggers> 
    </DataTemplate> 
</GridViewColumn.CellTemplate> 

對於標題:

<GridViewColumn Header="First" Width="60" > 
    <GridViewColumn.HeaderContainerStyle> 
     <Style TargetType="{x:Type GridViewColumnHeader}"> 
      <Setter Property="Background" Value="LightSkyBlue"/> 
     </Style> 
    </GridViewColumn.HeaderContainerStyle> 
</GridViewColumn> 
+0

對不起,遲到了,謝謝你的回答!不幸的是,這似乎並沒有改變它的背景。 –

+0

你想更改標題的背景,而不是第一行? – Iron

+0

正確 - 在這種情況下,預先存在標籤「First」的盒子 –

相關問題