I am trying to change a TreeViewItem background color when it selected but lost focus. I saw some similar questions like: WPF TreeViewItem Background , but I couldn't use it...
Here is my tree view Xaml code:
> <UserControl x:Class="Ednfi.Setup.Presentation.Views.TreeViewViews.StationTree" > xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" > xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > xmlns:behaviour="clr-namespace:Ednfi.Setup.Presentation.Extensions;assembly=Ednfi.Setup.Presentation" > xmlns:nodes="clr-namespace:Ednfi.Setup.Presentation.ViewModels.TreeViewViewModels.Nodes" > mc:Ignorable="d" > xmlns:d="http://schemas.microsoft.com/expression/blend/2008" > xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" > d:DesignHeight="226" d:DesignWidth="227" > xmlns:ml="clr-namespace:Ednfi.Setup.Presentation.ml_resources"> > <TreeView Margin="10 0 10 20" ItemsSource="{Binding Path=Root.Children}" VirtualizingStackPanel.IsVirtualizing="True" > VirtualizingStackPanel.VirtualizationMode="Recycling"> > > > <TreeView.ItemContainerStyle> > <Style TargetType="{x:Type TreeViewItem}"> > <Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}"/> > <Setter Property="IsExpanded" Value="{Binding Path=IsExpanded, Mode=TwoWay}" /> > </Style> > </TreeView.ItemContainerStyle> > <TreeView.Resources> > <Style TargetType="{x:Type TreeViewItem}"> > <Setter Property="Background" Value="Transparent" /> > <Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, > RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" > /> > <Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, > RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" > /> > <Setter Property="Padding" Value="1,0,0,0" /> > <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" /> > <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" /> > <Setter Property="behaviour:TreeViewItemBehavior.IsBroughtIntoViewWhenSelected" > Value="True" /> > <Setter Property="Template"> > <Setter.Value> > <ControlTemplate TargetType="{x:Type TreeViewItem}"> > <Grid> > <Grid.ColumnDefinitions> > <ColumnDefinition MinWidth="19" Width="Auto" /> > <ColumnDefinition Width="Auto" /> > <ColumnDefinition Width="*" /> > </Grid.ColumnDefinitions> > <Grid.RowDefinitions> > <RowDefinition Height="Auto" /> > <RowDefinition /> > </Grid.RowDefinitions> > <ToggleButton x:Name="Expander" IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource > TemplatedParent}}" ClickMode="Press" /> > <Border Grid.Column="1" x:Name="Selection_Border" Background="{TemplateBinding Background}" > BorderBrush="{TemplateBinding BorderBrush}" > BorderThickness="{TemplateBinding BorderThickness}" > Padding="{TemplateBinding Padding}"> > <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" > x:Name="PART_Header" ContentSource="Header" /> > </Border> > <ItemsPresenter Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="1" x:Name="ItemsHost" /> > </Grid> > <ControlTemplate.Triggers> > <Trigger Property="IsExpanded" Value="false"> > <Setter Property="Visibility" Value="Collapsed" TargetName="ItemsHost" /> > </Trigger> > <Trigger Property="HasItems" Value="false"> > <Setter Property="Visibility" Value="Hidden" TargetName="Expander" /> > </Trigger> > <Trigger Property="IsSelected" Value="true"> > <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" > TargetName="Selection_Border" /> > <Setter Property="Foreground" Value="{DynamicResource {x:Static > SystemColors.HighlightTextBrushKey}}" /> > </Trigger> > <MultiTrigger> > <MultiTrigger.Conditions> > <Condition Property="IsSelected" Value="true" /> > <Condition Property="IsSelectionActive" Value="false" /> > </MultiTrigger.Conditions> > <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" > TargetName="Selection_Border" /> > <Setter Property="Foreground" Value="{DynamicResource {x:Static > SystemColors.HighlightTextBrushKey}}" /> > </MultiTrigger> > <Trigger Property="IsEnabled" Value="false"> > <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" /> > </Trigger> > </ControlTemplate.Triggers> > </ControlTemplate> > </Setter.Value> > </Setter> > </Style> > <!-- Style for the ToggleButton control used to expand/collapse a TreeViewItem control --> > <Style TargetType="{x:Type ToggleButton}"> > <Setter Property="Focusable" Value="False" /> > <Setter Property="Width" Value="19" /> > <Setter Property="Height" Value="13" /> > <Setter Property="Template"> > <Setter.Value> > <ControlTemplate TargetType="{x:Type ToggleButton}"> > <Border Width="19" Height="13" Background="#00FFFFFF" x:Name="Border"> > <Border Width="9" Height="9" x:Name="Border1" SnapsToDevicePixels="True" BorderBrush="#FF9495A2" > BorderThickness="1,1,1,1" CornerRadius="1,1,1,1"> > <Border.Background> > <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> > <GradientStop Color="#FFFFFFFF" Offset="0.4" /> > <GradientStop Color="#FFC6CEDA" Offset="1" /> > </LinearGradientBrush> > </Border.Background> > <Path Fill="#FF000000" Margin="1,1,1,1" x:Name="ExpandPath" Data="M0,2L0,3 2,3 2,5 3,5 3,3 > 5,3 5,2 3,2 3,0 2,0 2,2z" /> > </Border> > </Border> > <ControlTemplate.Triggers> > <Trigger Property="IsChecked" Value="True"> > <Setter Property="Data" Value="M0,2L0,3 5,3 5,2z" TargetName="ExpandPath" /> > </Trigger> > </ControlTemplate.Triggers> > </ControlTemplate> > </Setter.Value> > </Setter> > </Style> > <DataTemplate DataType="{x:Type nodes:MonitorNode}"> > <StackPanel Orientation="Horizontal" Margin="0 2 0 0"> > <Image Source="{Binding ImageSource}" Width="16" Height="16" Margin="0 0 3 0" /> > <TextBlock Text="{x:Static ml:MultiLang._157}" x:Name="ML_0048" /> > <TextBlock Text="{Binding ID}" /> > <TextBlock Text="{x:Static ml:MultiLang._158}" x:Name="ML_0050" /> > <TextBlock Text="{Binding Name}" /> > </StackPanel> > </DataTemplate> > <HierarchicalDataTemplate DataType="{x:Type nodes:StationNode}" ItemsSource="{Binding Children}"> > <StackPanel Orientation="Horizontal" Margin="0 2 0 0"> > <StackPanel.ContextMenu> > <ContextMenu HasDropShadow="True"> > <MenuItem Header="{x:Static ml:MultiLang._160}" Command="{Binding CopyMonitorsCommand}" > x:Name="ML_0055" /> > <MenuItem Header="{x:Static ml:MultiLang._159}" Command="{Binding PasteMonitorsCommand}" > x:Name="ML_0056" /> > <MenuItem Header="{x:Static ml:MultiLang._162}" Command="{Binding CopyStationsCommand}" > x:Name="ML_0057" /> > <MenuItem Header="{x:Static ml:MultiLang._161}" Command="{Binding PasteStationsCommand}" > x:Name="ML_0058" /> > </ContextMenu> > </StackPanel.ContextMenu> > <Image Source="{Binding ImageSource}" Width="16" Height="16" Margin="0 0 3 0" /> > <TextBlock Text="{x:Static ml:MultiLang._157}" x:Name="ML_0060" /> > <TextBlock Text="{Binding ID}" /> > <TextBlock Text="{x:Static ml:MultiLang._158}" x:Name="ML_0062" /> > <TextBlock Text="{Binding Name}" /> > </StackPanel> > </HierarchicalDataTemplate> > <HierarchicalDataTemplate DataType="{x:Type nodes:FilteringNode}" ItemsSource="{Binding Children}"> > <StackPanel Orientation="Horizontal" Margin="0 2 0 0"> > <Image Source="{Binding ImageSource}" Width="16" Height="16" Margin="0 0 3 0" /> > <TextBlock Text="{Binding Name}" /> > </StackPanel> > </HierarchicalDataTemplate> > </TreeView.Resources> > </TreeView> > </UserControl> The current background color looks blue when selected.
But when still selected, but lost focus the background color is gray.
I just want it to stay blue !!! Thank you for your help.

