0

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は間違っていると思います。それは何ですか?

4

1 に答える 1

1

それはおそらくゼロベースのインデックスであるべきではありませんか?

<Storyboard> 
    <ColorAnimation Storyboard.TargetProperty="Background.GradientStops[0].Color" .../> 
    <ColorAnimation Storyboard.TargetProperty="Background.GradientStops[1].Color" .../> 
</Storyboard> 
于 2012-04-22T16:27:06.613 に答える