2

我将如何使用 SelectionChanged 上的动画将 TabItem 颜色从未选择的颜色更改为已选择的颜色,以便未选择和选定的 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>
4

1 回答 1

0

您可以定义自定义 TabItem 模板并使用触发器运行动画。

于 2010-10-29T08:39:40.987 回答