Wpf 路径控制的情节提要动画不工作

Wpf 路径控制的情节提要动画不工作,wpf,xaml,telerik,wpf-animation,coloranimation,Wpf,Xaml,Telerik,Wpf Animation,Coloranimation,因此,我有一个路径对象,它的实现如下: <Path x:Name="arrow" Data="M0,0L0.67,0 4,2.67 7.25,0 8,0 8,0.67 4,4 0,0.75z" Fill="Black" Height="4" RenderTransformOrigin="0.5,0.5" Stretch="None" Width="8"> <Path.RenderTransform> <TransformGroup>

因此,我有一个路径对象,它的实现如下:

<Path x:Name="arrow" Data="M0,0L0.67,0 4,2.67 7.25,0 8,0 8,0.67 4,4 0,0.75z" Fill="Black" Height="4" RenderTransformOrigin="0.5,0.5" Stretch="None" Width="8">
    <Path.RenderTransform>
        <TransformGroup>
            <RotateTransform Angle="0"/>
            <TranslateTransform/>
        </TransformGroup>
    </Path.RenderTransform>
</Path>

有了这条路径,我就有了下面的动画,效果非常好

工作:

<VisualStateGroup x:Name="ExpandStateGroup">
    <VisualState x:Name="Expanded">
        <Storyboard>
            <DoubleAnimation Duration="0:0:0.2" To="180" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="arrow"/>
        </Storyboard>
    </VisualState>
    <VisualState x:Name="Collapsed">
        <Storyboard>
            <DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="arrow"/>
        </Storyboard>
    </VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="ExpandStateGroup">
    <VisualState x:Name="Expanded">
        <Storyboard>
            <ColorAnimation To="Red" Duration="0:0:0.2" Storyboard.TargetProperty="(Path.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="arrow" />
            <DoubleAnimation Duration="0:0:0.2" To="180" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="arrow"/>
        </Storyboard>
    </VisualState>
    <VisualState x:Name="Collapsed">
        <Storyboard>
            <ColorAnimation To="Black" Duration="0:0:0.2" Storyboard.TargetProperty="(Path.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="arrow" />
            <DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="arrow"/>
        </Storyboard>
    </VisualState>
</VisualStateGroup>

但是,当我添加彩色动画时,两个动画都不起作用。而且,扩张似乎是瞬间发生的,而不是平稳地扩张。不过,崩塌效果很好

不工作:

<VisualStateGroup x:Name="ExpandStateGroup">
    <VisualState x:Name="Expanded">
        <Storyboard>
            <DoubleAnimation Duration="0:0:0.2" To="180" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="arrow"/>
        </Storyboard>
    </VisualState>
    <VisualState x:Name="Collapsed">
        <Storyboard>
            <DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="arrow"/>
        </Storyboard>
    </VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="ExpandStateGroup">
    <VisualState x:Name="Expanded">
        <Storyboard>
            <ColorAnimation To="Red" Duration="0:0:0.2" Storyboard.TargetProperty="(Path.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="arrow" />
            <DoubleAnimation Duration="0:0:0.2" To="180" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="arrow"/>
        </Storyboard>
    </VisualState>
    <VisualState x:Name="Collapsed">
        <Storyboard>
            <ColorAnimation To="Black" Duration="0:0:0.2" Storyboard.TargetProperty="(Path.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="arrow" />
            <DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="arrow"/>
        </Storyboard>
    </VisualState>
</VisualStateGroup>

这与彩色动画有关,因为当我试图单独执行彩色动画时,它不起作用。 这是Telerik RadExpander用户控制的一部分

如果需要任何其他信息,请随时询问

注1: 如果我将路径声明中的填充颜色设置为黑色,并将折叠填充颜色设置为绿色,则箭头将以绿色开始,但一旦展开,它将变为黑色,并且不再更改颜色


注2:设置彩色动画时,doubleanimation永远不会工作。

出于好奇,而且因为我没有时间修补,但是如果你用“#FFFF0000”和“#FF000000”替换“红色”和“黑色”,会发生什么情况,你会得到同样的结果吗?@ChrisW,我确实得到了同样的结果。可能值得注意的是,如果我将实际路径声明中的填充颜色设置为黑色,并将折叠视觉状态填充颜色设置为绿色,那么它会在开始时将填充设置为绿色(我假设这是因为它默认为折叠)。然而,当我展开和折叠它时,它会变成黑色,再也不会回到绿色。哦,你知道吗,我一开始没意识到你在一个物体上做这些。如果是我,我可能会复制箭头,在已经应用了变换的情况下制作一个红色和一个黑色,然后切换UIElement.Visibility。按照您的方式,如果您在blend中打开模板,您应该会在这些状态旁边看到一个小小的警告通知图标,告诉您一些相同的概念。