WPF a nivel mundial con el estilo de un TextBlock dentro de un DataGrid
Estoy encontrando un problema muy extraño. Estoy tratando de aplicar un estilo global a varios controles dentro de unDataGrid
. La mayoría de ellos funcionan exactamente como yo esperaría que lo hicieran. Sin embargo, el estilo para elTextBlock
nunca se aplica. Estilos paraComboBox
, TextBox
, Label
, y varios otros se están aplicando a sus respectivos controles, pero no a losTextBlock
. He simplificado el código tanto como sea posible y el problema sigue presente. He proporcionado el ejemplo de código a continuación.
Necesito el estilo para ser aplicado a laTextBlock
y no quiero tener que aplicarlo manualmente a laTextBlock
.
<DataGrid ItemsSource="{Binding Data}" AutoGenerateColumns="False">
<DataGrid.Resources>
<Style TargetType="TextBlock">
<Setter Property="ANY_TEXTBLOCK_PROPERTY" Value="VALUE" />
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTemplateColumn Header="Test">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="Globably Applied" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Más información:
Estilos globales para cualquier control que no seaTextBlock
(TextBox
, ComboBox
, etc.) funciona correctamente.Definiendo el estilo global dentro delDataTemplate
funcionará correctamenteAsignando directamente el estilo a laTextBlock
usando unax:Key
trabajará.Estilos globales paraDataGridCell
utilizandoTextElement.PROPERTY
se aplicará a unTextBlock
.Mientras que algunos de estos obtendrán el estilo aplicado a laTextBlock
, tienen sus propios problemas. Asignar directamente el estilo o definir el estilo en algún lugar dentro de unDataGridColumn
Significará que tendré que aplicar el estilo más de una vez. Utilizando laTextElement.PROPERTY
sobre elDataGridCell
aplicará el estilo a algo más queTextBlock
controla y limitará la cantidad de propiedades que puedes establecer.