Gus Lindell
Gus Lindell

Reputation: 346

WPF Overridden TabItem style can't click anything

I'm relatively new to WPF and XAML, and I'm trying to override the style of the TabItems in my TabControl. At the top of my xaml file I have this:

<Window.Resources>

    <Style TargetType="{x:Type TabItem}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TabItem}">
                    <Grid>
                        <Border Name="Border" Margin="0,5,0,0" Background="Transparent"
                                BorderBrush="LightGray" BorderThickness="1,1,1,1">
                            <ContentPresenter x:Name="ContentSite" VerticalAlignment="Center"
                                              HorizontalAlignment="Center"
                                              ContentSource="Header" Margin="12,2,12,2"
                                              RecognizesAccessKey="True">

                            </ContentPresenter>
                        </Border>
                    </Grid>

                    <ControlTemplate.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter Property="Panel.ZIndex" Value="100"/>
                            <Setter TargetName="Border" Property="Background" Value="#EEE9ED"/>
                            <Setter TargetName="Border" Property="BorderThickness" Value="1,1,1,1"/>
                        </Trigger>
                        <Trigger Property="IsSelected" Value="False">
                            <Setter Property="IsEnabled" Value="False"/>
                            <Setter TargetName="Border" Property="Background" Value="LightGray"/>
                            <Setter TargetName="Border" Property="BorderBrush" Value="Black"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                    
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        
        <Setter Property="FontSize" Value="15"/>
        <Setter Property="FontWeight" Value="Bold"/>

    </Style>
    
</Window.Resources>

It applies the style to all TabItems, and that works. It all looks how I want it to. The problem is that now I can't click on any of them. It doesn't look like any of the style guides online have encountered this problem, so it's probably just something really stupid that I'm doing, but I really can't figure it out.

Upvotes: 0

Views: 214

Answers (1)

Keith Stein
Keith Stein

Reputation: 6754

The problem is <Setter Property="IsEnabled" Value="False"/>. A TabItem with IsEnabled set to False cannot be selected. Since all non-selected TabItems are disabled by your Style, this prevents any of them from being selected.

Upvotes: 1

Related Questions