2012-12-06 45 views
3

任何線索?下面的代碼無法正常工作...如何居中DataGridTemplateColumn.HeaderTemplate

謝謝!

<DataGrid AutoGenerateColumns="False" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="dg1" Grid.Row="0" > 
    <DataGridTemplateColumn Width="SizeToCells" IsReadOnly="True"> 
     <DataGridTemplateColumn.HeaderTemplate> 
      <DataTemplate> 
       <Label HorizontalAlignment="Center" Content="First Name"></Label> 
      </DataTemplate> 
      </DataGridTemplateColumn.HeaderTemplate> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
       <Label Content="{Binding FirstName}" /> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
    </DataGridTemplateColumn> 

UPDATE:

@ArsenMkrt的解決辦法是偉大的,但我面對一些奇怪的垂直線...

enter image description here

回答

10

使用HeaderStyle而不是HeaderTemplate

<DataGridTemplateColumn.HeaderStyle> 
     <Style TargetType="{x:Type DataGridColumnHeader}"> 
      <Setter Property="HorizontalAlignment" Value="Center"/> 
     </Style> 
    </DataGridTemplateColumn.HeaderStyle> 
+0

酷!但我現在面臨這個錯誤:錯誤\t \t'localprimitives'是一個未聲明的名稱空間。 –

+0

哎呀我很抱歉,只是刪除它,編輯 –

+1

真棒!請看看我的問題...有一些垂直線正在包裝標題字... –

4

不確定是否仍然幫助,但與此:

<DataGridTemplateColumn.HeaderStyle> 
    <Style TargetType="{x:Type DataGridColumnHeader}"> 
     <Setter Property="HorizontalAlignment" Value="Stretch"/> 
     <Setter Property="HorizontalContentAlignment" Value="Center"/>        
    </Style> 
</DataGridTemplateColumn.HeaderStyle> 

將頭球攻門沒有豎線問題

+1

感謝您的意見,男士! –

9

試試這個它的工作對我來說,頭球攻門,沒有任何問題。

<DataGridTemplateColumn.HeaderStyle> 
    <Style TargetType="DataGridColumnHeader"> 
     <Setter Property="HorizontalContentAlignment" Value="Center"/> 
    </Style> 
</DataGridTemplateColumn.HeaderStyle> 
1

這裏的所有答案確實解決了這個問題,但主題不同於其他列標題。所以有一點改變爲我做了訣竅。在這裏,如果有人仍在尋找它。

<DataGridTemplateColumn.HeaderStyle> 
    <Style TargetType="DataGridColumnHeader"> 
     <Setter Property="HorizontalAlignment" Value="Stretch"/> 
     <Setter Property="HorizontalContentAlignment" Value="Center"/> 
     <Setter Property="Background" Value="Transparent"/> 
    </Style> 
</DataGridTemplateColumn.HeaderStyle>