2016-03-18 35 views
-1

所以我試圖創建一個有很多不同格式的表。我目前苦苦掙扎的是如何通過在XAML中進行編碼來調整WPF中的Datagrid中列標題的顏色。我找到的所有方法都是格式化所有列標題。有什麼辦法可以分別格式化每一個?如何在WPF Datagrid中格式化每個單獨的列標題XAML

我的代碼目前看起來是這樣的:

<DataGrid x:Name="CellStyleGrid" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="309,50,0,0" IsReadOnly="False" IsEnabled="True" CanUserAddRows="True" Width="172" RenderTransformOrigin="0.501,0.477" SelectionUnit="Cell" Grid.ColumnSpan="2" AlternatingRowBackground="#C2C2C2" AlternationCount="2" AutoGenerateColumns="False"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding Path=col1}" ClipboardContentBinding="{x:Null}" Header="Col1" CanUserResize="True"/> 
      <DataGridTextColumn Binding="{Binding Path=col2}" ClipboardContentBinding="{x:Null}" Header="Col2" CanUserResize="True"/> 
      <DataGridTextColumn Binding="{Binding Path=col3}" ClipboardContentBinding="{x:Null}" Header="Col3" CanUserResize="True"/> 
     </DataGrid.Columns> 
     <DataGrid.ColumnHeaderStyle> 
      <Style TargetType="{x:Type DataGridColumnHeader}"> 
       <Setter Property="Background" Value="#3B3B3B"/> 
       <Setter Property="Foreground" Value="White"/> 
      </Style> 
     </DataGrid.ColumnHeaderStyle> 
    </DataGrid> 

此代碼創建一個具有三個列和顏色的頭部深灰色與白色的前景文本的簡單表格。我期待讓其中一個標題變成淺灰色。 謝謝! Jon

+1

歡迎來到Stack Overflow!請[edit]在此添加有意義的代碼和問題描述。發佈 [最小,完整,可驗證示例](http:// $ SITEURL $/help/mcve),演示 您的問題將幫助您獲得更好的答案。謝謝! –

回答

0

將AutoGenerateColumns設置爲false,然後在每個列定義中指定DataGridXColumn.HeaderStyle。這裏是一個粗略的例子:

<DataGrid AutoGenerateColumns="False"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Binding="{SomeBinding}"> 
      <DataGridTextColumn.HeaderStyle> 
        <Style> 
         <Setter Property="InkCanvas.Background" 
           Value="Blue" /> 
        </Style> 
        </DataGridTextColumn.HeaderStyle> 
     </DataGridTextColumn> 
    </DataGrid.Columns> 
</DataGrid> 
+0

我在這裏收到一個錯誤,指出DataGrid不包含HeaderTemplate選項。 – Jvinsko

+0

請注意,DataGridTextColumn具有HeaderTemplate選項,而不是DataGrid。當然,您可以使用任何形式的DataGrid__Column,如答案 –

+0

請原諒我,DataGridTextColumn就是我的意思。但是,這是我自己的錯誤。我發現我有一個錯位的'/'。這對我有用,謝謝! – Jvinsko