2012-07-26 86 views
0

我想以一種非常簡單的方式模板一些headercolumns,但是我沒有得到我期待的結果。我希望邊框填充整個標題,而不僅僅是內部的文本框。現在我仍然在我自己的控件背後有默認的灰色。Datagrid Column Header Templating

<DataGrid x:Name="grdItems" 
    Grid.Row="0" 
    CanUserAddRows="False" 
    CanUserDeleteRows="False" 
    ItemsSource="{Binding Path=Items}" 
    CanUserSortColumns="False" AutoGenerateColumns="False" CanUserResizeColumns="False"> 
<DataGrid.Columns> 
<DataGridComboBoxColumn ItemsSource="{Binding Source={StaticResource GetSignalTypeValues}}" Width="auto" SelectedValueBinding="{Binding SignalType}" > 
    <DataGridComboBoxColumn.HeaderTemplate> 
     <DataTemplate> 
      <Border Background="Orange" > 
       <TextBlock Text="Signal Type" /> 
      </Border> 
     </DataTemplate> 
    </DataGridComboBoxColumn.HeaderTemplate> 
</DataGridComboBoxColumn> 

<DataGridTextColumn Width="auto" Binding="{Binding AmplitudeMax}"> 
    <DataGridTextColumn.HeaderTemplate> 
     <DataTemplate> 
      <Border Background="Violet"> 
       <StackPanel> 
        <TextBlock Text="Amplitude" HorizontalAlignment="Center" /> 
        <TextBlock Text="-maximum-" HorizontalAlignment="Center" /> 
       </StackPanel> 
      </Border> 
     </DataTemplate> 
    </DataGridTextColumn.HeaderTemplate> 
</DataGridTextColumn> 

回答

2

如果你只後,列標題的背景顏色,你可以利用這一點:

<DataGridComboBoxColumn Width="auto" SelectedValueBinding="{Binding SignalType}" > 
    <DataGridComboBoxColumn.HeaderStyle> 
     <Style TargetType="DataGridColumnHeader"> 
      <Setter Property="Background" Value="Orange"/> 
     </Style> 
    </DataGridComboBoxColumn.HeaderStyle> 
+0

基本上這就是我想做的事,但我仍想保留列標題之間的分隔符線。 – metacircle 2012-07-26 10:47:16

+0

你是否設法保持這些行顯示? – Rafal 2012-08-10 08:41:58

+0

不幸的是沒有。 – metacircle 2012-08-15 11:13:14