我想实现DataGridColumn中的Header有一个换行符(2行),每个文本都居中。此外,文本应来自资源文件。 我尝试使用ALT + ENTER在资源文件中创建换行符但文本不居中,看起来像这样:
| LINE1LONG |
| LINE2 |
WPF中的我的DataGridTextColumn
<DataGridTextColumn Width="4*" IsReadOnly="False"
Header="{x:Static p:Resources.DG_HEADER_DESC}" Binding="{Binding Description, Mode=TwoWay}">
</DataGridTextColumn>
中心适用于单行,但不适用于具有以下样式的两行:
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
</Style>
有没有人有想法?
答案 0 :(得分:3)
您可以为标题创建自定义模板,在文本块中将文本居中,而不是标题中的文本块:
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn>
<DataGridTextColumn.Header>
<GridViewColumnHeader>
<TextBlock TextAlignment="Center" Text="this is a text
and here some more" />
</GridViewColumnHeader>
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
答案 1 :(得分:0)
如果您想保持使用资源文件的能力
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn>
<!-- Column Width--!>
<DataGridTextColumn.Width>4</DataGridTextColumn.Width>
<!-- Column Width--!>
<DataGridTextColumn.IsReadOnly>False</DataGridTextColumn.IsReadOnly>
<DataGridTextColumn.Binding>
<Binding Path="{Binding Description, Mode=TwoWay}"/>
</DataGridTextColumn.Binding>
<DataGridTextColumn.Header>
<DataGridColumnHeader Content="{x:Static p:Resources.DG_HEADER_DESC}"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Center"
TextBlock.TextAlignment="Center">
<!-- Header Width--!>
<DataGridColumnHeader.Width>4</DataGridColumnHeader.Width>
<!-- Header Width--!>
</DataGridColumnHeader>
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>