我有一个矩形,我想在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>
我尝试手动设置变换角度,它工作得很好。所以动画肯定有问题。
非常感谢任何帮助!
答案 0 :(得分:2)
我认为这是因为你试图为尚未存在的属性设置动画。 Rectangle的属性RenderTransform属性不包含RotateTransform。在XAML中将其设置为默认值0,我的猜测是,您将能够为其设置动画。
将此添加到您的XAML:
<Rectangle.RenderTransform>
<RotateTransform Angle="0"/>
</Rectangle.RenderTransform>