2014-09-29 70 views
0

在我的DataGrid標題中,我想將內容對齊到右側。DataGridHeader中的Horizo​​ntalContentAlignment

<Style TargetType="DataGridColumnHeader" x:Key="ResultatenHeader" BasedOn="{StaticResource MetroDataGridColumnHeader}"> 
    <Setter Property="HorizontalContentAlignment" Value="Right"/> 
</Style> 

然而,這會產生以下結果:

result

正如你可以看到我的頭有兩條線,我已經做了我目前使用DataGrid上的樣式做這個這與下面的代碼:

<DataGridTextColumn Width="100" Header="neerslag&#x0a;(m³)" Binding="{Binding Path=Resultaten[2].Double, StringFormat={}{0:f2}}"/> 

我將如何去使第二行(單位,立方米)也正確對齊。

回答

0

而不是設置的ContentTemplate爲Null像dkozl建議我決定編輯的ContentTemplate到:

<Setter Property="ContentTemplate"> 
    <Setter.Value> 
     <DataTemplate> 
      <TextBlock TextBlock.FontWeight="SemiBold" 
         Text="{Binding Converter={StaticResource ToUpperConverter}}" 
         TextAlignment="Right"/> 
      </DataTemplate> 
    </Setter.Value> 
</Setter> 

我申請這個涉及數字我所有的表,它就像一個魅力:)

0

使用TextBlockHeader內容,然後你可以右對齊文本

<DataGridTextColumn ...> 
    <DataGridTextColumn.Header> 
     <TextBlock Text="neerslag&#x0a;(m³)" TextAlignment="Right"/> 
    </DataGridTextColumn.Header> 
</DataGridTextColumn> 

編輯

因爲你使用MahApps地鐵這爲DataGridColumnHeader,併爲它改變ContentTemplate是部分改變模板TextBlockControls.DataGrid.xaml第238行),所以你不能把任何東西放入Header,因爲它會被轉換爲字符串。您可以更改樣式DataGridColumnHeader,將它基於Metro風格,改變ContentTemplate爲空,這將允許再次你把你想要的任何東西,像TextBlock,在Header但它應該保持Metro風格

<DataGrid.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/controls.datagrid.xaml"/> 
     </ResourceDictionary.MergedDictionaries>   
     <Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MetroDataGridColumnHeader}"> 
      <Setter Property="FontWeight" Value="SemiBold"/> 
      <Setter Property="ContentTemplate" Value="{x:Null}"/> 
     </Style> 
    </ResourceDictionary> 
</DataGrid.Resources> 
+0

試試這個我的頭說:System.Windows.Controls.TextBlock – user3692104 2014-09-29 11:28:17

+0

你是否更改'DataGridColumnHeader'的模板?如果是,您是否使用「TextBlock」或「ContentPresenter」來顯示「Header」內容? – dkozl 2014-09-29 11:29:59

+0

user3692104 2014-09-29 11:51:12

相關問題