WPF globalnie stylizuje TextBlock wewnątrz DataGrid
Mam bardzo dziwny problem. Próbuję zastosować globalną stylizację do kilku elementów sterujących w obrębieDataGrid
. Większość z nich działa dokładnie tak, jak powinienem. Jednak stylizacja dlaTextBlock
nigdy się nie stosuje. Style dlaComboBox
, TextBox
, Label
, a kilka innych wszystkich stosuje się do odpowiednich kontrolek, ale nie doTextBlock
. Uprościłem kod w jak największym stopniu, a problem nadal występuje. Podałem przykładowy kod poniżej.
Potrzebuję stylu do zastosowaniaTextBlock
i nie chcę ręcznie stosować go doTextBlock
.
<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>
Więcej informacji:
Globalne style dla każdej kontroli innej niżTextBlock
(TextBox
, ComboBox
itd.) działa poprawnie.Definiowanie globalnego stylu wewnątrzDataTemplate
będzie działać poprawnie.Bezpośrednie przypisanie stylu doTextBlock
za pomocąx:Key
będzie działać.Globalne style dlaDataGridCell
za pomocąTextElement.PROPERTY
zostanie zastosowany do aTextBlock
.Podczas gdy niektóre z nich uzyskają styl zastosowany doTextBlock
, mają tam własne problemy. Bezpośrednie przypisanie stylu lub zdefiniowanie stylu gdzieś w obrębieDataGridColumn
będzie oznaczać, że będę musiał zastosować styl więcej niż raz. UżywającTextElement.PROPERTY
naDataGridCell
zastosuje styl do czegoś więcej niż tylkoTextBlock
kontrolki i ograniczy liczbę właściwości, które można ustawić.