Я пытаюсь изменить шаблон SelectedItem в TreeView. Я написал простой стиль контейнера и изменение элемента шаблона в Style.Triggers, как описаноТриггер TreeView.IsSelected не работает должным образом
[1]: How do I highlight a treeview selected item with some color? или
[2]: WPF TreeView: How to style selected items with rounded corners like in Explorer, но он не работает.
Затем я создал новый проект и создал TreeView с простым стилем и шаблоном
<TreeView>
<TreeViewItem Header="Item1" />
<TreeViewItem Header="Item2" />
<TreeViewItem Header="Item3"/>
<TreeView.Resources>
<DataTemplate DataType="{x:Type TreeViewItem}" x:Key="selectedTemplate">
<StackPanel Height="25">
<TextBlock Text="SelectedItem"/>
</StackPanel>
</DataTemplate>
</TreeView.Resources>
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="FontStyle" Value="Italic"/>
<Setter Property="Foreground" Value="Red"/>
<Setter Property="Background" Value="Green"/>
<Setter Property="ItemTemplate" Value="{StaticResource selectedTemplate}"/>
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
Так, то я выбрал TreeViewItem в виде дерева FontWeight, FontStyle и передний план изменяются, но фон и ItemTemplate не изменилось.
Результат:
Не могли бы вы объяснить это странное поведение?
Большое спасибо. Это то, что мне нужно. –