В tabcontrol у меня нет проблем с постепенным увеличением, поскольку шаги просты. Мы могли бы включить триггер в пользовательском элементе управления, и анимация включится, как только она станет видимой. Но проблема в том, что когда я хочу исчезнуть, элемент управления теперь скрыт, и поэтому он не может завершить анимацию.
Вот пример, которого я хочу достичь: http://www.yoyonetwork.info/YoYoTabTestTestPage.html
А вот код:
<TabControl IsSynchronizedWithCurrentItem="True" VerticalAlignment="Bottom" Name="TabControl1">
<TabItem Width="70" Name="TabItem1">
<Grid>
<my:UserControl1 x:Name="UserControl1"/> <!-- my is the clr-namespace for usercontrols -->
</Grid>
</TabItem>
<TabItem Width="100" Name="TabItem2">
<Grid>
<my:UserControl2 x:Name="UserControl2"/>
</Grid>
</TabItem>
</TabControl>
В пользовательских элементах управления:
<Grid.Style>
<Style TargetType="{x:Type Grid}">
<Style.Triggers>
<Trigger Property="IsVisible" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.5"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:0.5"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
</Grid.Style>