Точно такой же вопрос, как и Как изменить шрифт заголовка TabItem без изменения шрифта содержимого? , но я использую шаблон управления с Content Presenter.
Когда я переключаюсь на вкладку, все содержимое на этой вкладке меняет свой шрифт, и я хотел бы ограничить это только элементом вкладки. Я также открыт к лучшим решениям о том, как анимировать элементы вкладок, если это потребует чрезмерной выборки.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Style TargetType="TabControl">
<Setter Property="TabStripPlacement" Value="Left"/>
<Setter Property="Background" Value="{StaticResource NeutralBrush35}"/>
</Style>
<Style TargetType="TabPanel">
<Setter Property="Margin" Value="0"/>
</Style>
<Style TargetType="TabItem">
<Setter Property="Height" Value="25"/>
<Setter Property="Width" Value="140"/>
<Setter Property="Opacity" Value="0.85"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="FontFamily" Value="Futura Md BT"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Background" Value="{StaticResource LivingGreenLight}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Grid Name="Panel" Margin="0,-2,0,0">
<ContentPresenter
VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
Margin="0"
/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter
TargetName="Panel"
Property="Background"
Value="{StaticResource LivingGreenDark}"
/>
<Setter
TargetName="Panel"
Property="Opacity"
Value="1"
/>
<Setter
Property="FontWeight"
Value="Bold"
/>
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter
TargetName="Panel"
Property="Background"
Value="{StaticResource LivingGreenNormal}"
/>
<Setter
TargetName="Panel"
Property="Opacity"
Value="0.90"
/>
<Setter
Property="FontWeight"
Value="Normal"
/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
<Condition Property="IsSelected" Value="False"/>
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To="1"
Duration="0:0:0.3"
/>
<DoubleAnimation
Storyboard.TargetProperty="FontSize"
To="14"
Duration="0:0:0.3"
/>
</Storyboard>
</BeginStoryboard>
</MultiTrigger.EnterActions>
<MultiTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To=".85"
Duration="0:0:0.3"/>
<DoubleAnimation
Storyboard.TargetProperty="FontSize"
To="12"
Duration="0:0:0.3"/>
</Storyboard>
</BeginStoryboard>
</MultiTrigger.ExitActions>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>