RenderTransform动画奇怪地无法正常工作

时间:2014-08-05 07:37:14

标签: c# wpf xaml animation

我有一个矩形,我想在0-180度的角度设置角度。

我是从代码隐藏而不是在XAML中执行此操作。 我已经设置了所有东西,但是当我触发动画时 - 没有任何反应!我已多次检查,没有错!我真的不知道该怎么做了。

以下是动画本身的代码:

DoubleAnimation menuRktAngle = new DoubleAnimation();
menuRktAngle.From = 0;
menuRktAngle.To = 180;
menuRktAngle.Duration = new Duration(TimeSpan.FromSeconds(1));
Storyboard.SetTarget(menuRktAngle, aniR);
Storyboard.SetTargetProperty(menuRktAngle, new PropertyPath((Rectangle.RenderTransform).(RotateTransform.Angle)"));

menubtnStoryboard.Children.Add(menuRktAngle);

menubtnStoryboard.Begin(this);

矩形的XAML代码:

<Rectangle Fill="#FF707070" Height="15" Width="20" HorizontalAlignment="Center" VerticalAlignment="center" x:Name="aniR">
                    <Rectangle.OpacityMask>
                        <VisualBrush Visual="{StaticResource appbar_arrow_left}" Stretch="Fill" />
                    </Rectangle.OpacityMask>
                </Rectangle>

我尝试手动设置变换角度,它工作得很好。所以动画肯定有问题。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

我认为这是因为你试图为尚未存在的属性设置动画。 Rectangle的属性RenderTransform属性不包含RotateTransform。在XAML中将其设置为默认值0,我的猜测是,您将能够为其设置动画。

将此添加到您的XAML:

<Rectangle.RenderTransform>
    <RotateTransform Angle="0"/>
</Rectangle.RenderTransform>