me gustaría para permitir el ajuste de texto en todos los títulos de las columnas de mi DataGrid, sin desactivar el otro funcionalidad encabezado predeterminado
es necesario agregar el siguiente espacio de nombre para su archivo app.xaml:
xmlns:primitives="clr-namespace:Microsoft.Windows.Controls.Primitives;assembly=WPFToolkit"
y luego añadir esta etiqueta a App.xaml:
<Style TargetType="{x:Type primitives:DataGridColumnHeader}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding}"></TextBlock>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Esto agregará de ajuste de texto a los encabezados de todos sus DataGrids a través de su aplicación de WPF.
Mientras estamos en el tema, si sólo quería a centro el texto de cada uno de los encabezados de DataGrid, puede hacerlo utilizando el siguiente estilo en su lugar:
<Style TargetType="{x:Type primitives:DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center"></Setter>
</Style>
embargo, he visto tantas artículos WPF que sugieren que sólo se puede hacer esto mediante la adición de TextWrapping o HorizontalAlignment en cada columna de cuadrícula de datos individual :
<toolkit:DataGridTextColumn Binding="{Binding Path=TaxAmount}">
<toolkit:DataGridTextColumn.HeaderTemplate >
<DataTemplate>
<TextBlock Text="Tax Amount" Width="90" TextWrapping="Wrap" HorizontalAlignment="Center"/>
</DataTemplate>
</toolkit:DataGridTextColumn.HeaderTemplate>
</toolkit:DataGridTextColumn>
Gracias por su sugerencia, pero no he podido lograr que este enfoque funcione.Sin embargo, encontré que puedo obtener el resultado deseado si en lugar de asignar una cadena a la propiedad DataGridColumn.Header, creo un TextBlock que contiene mi cadena y establezco la propiedad TextWrapping del bloque de texto en "Ajustar". –
¿qué hay de envolver el contenido sin encabezado? –