WPF - Анимация на SelectionChanged - PullRequest
2 голосов
/ 29 октября 2010

Как мне изменить цвет TabItem с невыбранного цвета на выбранный цвет с помощью анимации на SelectionChanged, чтобы изменить как невыбранные, так и выбранные элементы TabItems?

Редактировать: вот какмой CustomTemplate выглядит так.Анимация вообще не происходит, так что я сделал не так?

 <Style TargetType="TabItem">
        <Setter Property="IsEnabled" Value="False" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="TabItem">
                    <Grid>
                        <Border BorderBrush="Transparent" BorderThickness="0" MinWidth="120">
                            <StackPanel Orientation="Vertical">
                                <ContentPresenter HorizontalAlignment="Center" ContentSource="Header" />
                                <Ellipse Name="Ellipse" Stroke="Black" StrokeThickness="1" Width="24" Height="24" Margin="5" Fill="Transparent" />
                            </StackPanel>
                        </Border>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <MultiTrigger>
                            <MultiTrigger.Conditions>
                                <Condition Property="IsSelected" Value="True" />
                                <Condition Property="Ellipse.Fill" Value="Transparent" />
                            </MultiTrigger.Conditions>
                            <MultiTrigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetName="Ellipse" Storyboard.TargetProperty="Fill"
                                                        From="Transparent" To="Orange" Duration="0:0:1" />
                                    </Storyboard>
                                </BeginStoryboard>
                            </MultiTrigger.EnterActions>
                        </MultiTrigger>
                        <MultiTrigger>
                            <MultiTrigger.Conditions>
                                <Condition Property="IsSelected" Value="False" />
                                <Condition Property="Ellipse.Fill" Value="Orange" />
                            </MultiTrigger.Conditions>
                            <MultiTrigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <ColorAnimation Storyboard.TargetName="Ellipse" Storyboard.TargetProperty="Fill"
                                                        From="Orange" To="Transparent" Duration="0:0:1" />
                                    </Storyboard>
                                </BeginStoryboard>
                            </MultiTrigger.EnterActions>
                        </MultiTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

1 Ответ

0 голосов
/ 29 октября 2010

Вы можете определить собственный шаблон TabItem и запускать анимацию с помощью триггеров.

...