Search code examples
c#wpfstylestabitem

How can I change tab border brush on changing key board focus in wpf style


I want to change border color of tab item when it has key board focus. I have written following trigger in its style

<Style TargetType="{x:Type TabItem}" x:Key="{x:Type TabItem}">
 <Style.Triggers>
        <Trigger Property="IsKeyboardFocused" Value="True">
            <Setter Property="BorderBrush" Value="#800000" />
        </Trigger>

It works fine for all other UI controls except tab itme. Can any one please help


Solution

  • Although this is working fine for me (make sure you actually have the keyboard focus to view the change in color)

     <Style TargetType="{x:Type TabItem}" >
                <Style.Triggers>
                    <Trigger Property="IsKeyboardFocused" Value="True">
                        <Setter Property="BorderBrush" Value="Yellow"/>
                    </Trigger>
    
                    <Trigger Property="IsKeyboardFocused" Value="False">
                        <Setter Property="BorderBrush" Value="Blue"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
    

    You can also try this to change the color if any item inside the Tab have keyboard focus

     <Style TargetType="{x:Type TabItem}" >
                <Style.Triggers>
                    <Trigger Property="IsKeyboardFocusWithin" Value="True">
    
                        <Setter Property="BorderBrush" Value="Yellow"/>
                    </Trigger>
                    <Trigger Property="IsKeyboardFocusWithin" Value="False">
    
                        <Setter Property="BorderBrush" Value="Blue"/>
                    </Trigger>
                </Style.Triggers>
            </Style>