WPF动画未播放
我使用以下xaml来显示旋转的WPF动画未播放,wpf,xaml,animation,storyboard,Wpf,Xaml,Animation,Storyboard,我使用以下xaml来显示旋转的椭圆: <Ellipse x:Name="ellipse" Stroke="{StaticResource _SpinnerGradientBrush}" StrokeThickness="20" RenderTransformOrigin="0.5,0.5"> <Ellipse.RenderTransform> <Transf
椭圆
:
<Ellipse x:Name="ellipse"
Stroke="{StaticResource _SpinnerGradientBrush}"
StrokeThickness="20"
RenderTransformOrigin="0.5,0.5">
<Ellipse.RenderTransform>
<TransformGroup>
<RotateTransform Angle="0" />
</TransformGroup>
</Ellipse.RenderTransform>
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Ellipse.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames
Storyboard.TargetName="ellipse"
Storyboard.TargetProperty="(Ellipse.RenderTransform).(RotateTransform.Angle)"
Duration="0:0:4"
RepeatBehavior="Forever">
<LinearDoubleKeyFrame Value="0" KeyTime="0:0:0" />
<LinearDoubleKeyFrame Value="359" KeyTime="0:0:4" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>
</Ellipse>
窗口将按预期显示,但动画从未启动。我已经在Blend中实现了这一点,但由于某些原因,当我在应用程序中实际使用xaml时,它不起作用。如果有人有任何想法,我将不胜感激。删除标签,您只需要:
<Ellipse.RenderTransform>
<RotateTransform Angle="0" />
</Ellipse.RenderTransform>
或者,为要设置动画的旋转变换指定一个名称,并将其作为动画中的目标(由于其较短,因此更改为DoubleAnimation):
<Ellipse.RenderTransform>
<TransformGroup>
<RotateTransform Angle="0" x:Name="ellipseRotateTransform" />
</TransformGroup>
</Ellipse.RenderTransform>
<Ellipse.Triggers>
<EventTrigger RoutedEvent="Ellipse.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="ellipseRotateTransform"
Storyboard.TargetProperty="Angle"
From="0" To="359"
Duration="0:0:4"
RepeatBehavior="Forever">
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Ellipse.Triggers>