Я пытаюсь изменить шаблон SelectedItem в TreeView.
Я написал простой стиль контейнера и изменил шаблон элемента в Style.Triggers, как описано
[1]: Как выделить выбранный вид дерева в некотором цвете? или
[2]: WPF TreeView: Как оформить выделенные элементы закругленными углами, как в 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 и Foreground изменены, но Background и ItemTemplate не изменились.
Результат:
Не могли бы вы объяснить это странное поведение?