【问题标题】:What's wrong with my WPF TabItem animation?我的 WPF TabItem 动画有什么问题?
【发布时间】:2012-05-03 09:41:53
【问题描述】:

我正在尝试为我的 TabItem 的背景/渐变设置动画。但是,我收到一个错误:

附加信息:无法解析 属性路径'Background.GradientStops[2].Color'。验证 适用对象支持这些属性。

当我将鼠标悬停在标签项上时发生错误。

这是 XAML:

<Style TargetType="{x:Type TabItem}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type TabItem}">
                <Grid>
                    <Border Name="Border" BorderBrush="#666" BorderThickness="1,1,1,0" CornerRadius="8,8,0,0" Margin="-2,0,3,-1">
                        <!-- Some irrelevant code here -->
                    </Border>

                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Normal"/>
                            <VisualState x:Name="MouseOver">
                                <Storyboard>
                                    <ColorAnimation Duration="0:0:0.3" To="#EBEBEB" Storyboard.TargetProperty="Background.GradientStops[1].Color" Storyboard.TargetName="Border"/>
                                    <ColorAnimation Duration="0:0:0.3" To="#CDCDCD" Storyboard.TargetProperty="Background.GradientStops[2].Color" Storyboard.TargetName="Border"/>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                </Grid>

                <ControlTemplate.Triggers>
                    <Trigger Property="IsSelected" Value="True">
                        <Setter TargetName="Border" Property="Background">
                            <Setter.Value>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                    <GradientStop Color="#fff" Offset="0.35"></GradientStop>
                                    <GradientStop Color="#e9e9e9" Offset="0.75"></GradientStop>
                                </LinearGradientBrush>
                            </Setter.Value>
                        </Setter>
                    </Trigger>

                    <Trigger Property="IsSelected" Value="False">
                        <Setter TargetName="Border" Property="Background">
                            <Setter.Value>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                    <GradientStop Offset="0.35">
                                        <GradientStop.Color>
                                            <Color A="127" R="255" G="255" B="255" />
                                        </GradientStop.Color>
                                    </GradientStop>

                                    <GradientStop Offset="0.75">
                                        <GradientStop.Color>
                                            <Color A="127" R="233" G="233" B="233" />
                                        </GradientStop.Color>
                                    </GradientStop>
                                </LinearGradientBrush>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

我认为Storyboard.TargetProperty 是错误的。应该是什么?

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    这不应该是从零开始的索引吗?

    <Storyboard> 
        <ColorAnimation Storyboard.TargetProperty="Background.GradientStops[0].Color" .../> 
        <ColorAnimation Storyboard.TargetProperty="Background.GradientStops[1].Color" .../> 
    </Storyboard> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 2010-11-17
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      相关资源
      最近更新 更多