DataGridHeader中的Horizo​​ntalContentAlignment

时间:2014-09-29 10:55:36

标签: c# wpf datagrid mahapps.metro

在我的DataGrid标头中,我想将内容与右边对齐。目前我正在使用DataGrid上的样式执行此操作:

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

然而,这会产生以下结果:

result

正如您所看到我的标题有两行,我已使用以下代码完成此操作:

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

我如何使第二行(单位,m3)也正确对齐。

2 个答案:

答案 0 :(得分:0)

TextBlock用作Header内容,然后您可以右对齐文字

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

修改

因为您使用MahApps Metro更改了DataGridColumnHeader的模板,并且作为其中的一部分,它将ContentTemplate更改为TextBlockControls.DataGrid.xaml第238行),因此您无法放置任何内容进入Header,因为它将被转换为字符串。您可以更改DataGridColumnHeader的样式,将其基于Metro样式并将ContentTemplate更改为null,这样您就可以再次在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>

答案 1 :(得分:0)

而不是像Dkozl建议的那样将ContentTemplate设置为Null,我决定将ContentTemplate编辑为:

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

我将这个应用到涉及数字的所有表格中,它就像一个魅力:)