[英]HorizontalContentAlignment in DataGridHeader
在我的DataGrid標頭中,我想將內容向右對齊。 目前,我正在使用DataGrid上的樣式來執行此操作:
<Style TargetType="DataGridColumnHeader" x:Key="ResultatenHeader" BasedOn="{StaticResource MetroDataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Right"/>
</Style>
但是,這將產生以下結果:
如您所見,我的標題有兩行,我使用以下代碼完成了此操作:
<DataGridTextColumn Width="100" Header="neerslag
(m³)" Binding="{Binding Path=Resultaten[2].Double, StringFormat={}{0:f2}}"/>
我將如何使第二行(單位,m3)也正確對齊。
使用TextBlock
作為Header
內容,然后可以將文本右對齊
<DataGridTextColumn ...>
<DataGridTextColumn.Header>
<TextBlock Text="neerslag
(m³)" TextAlignment="Right"/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
編輯
因為您使用MahApps Metro,它更改了DataGridColumnHeader
模板,並且作為其一部分,它將ContentTemplate
更改為TextBlock
( Controls.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>
與其像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>
我將其應用於所有涉及數字的表,它的作用就像一個魅力:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.