2014-09-29 38 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

相关问题