路径动画是一种专门用于将对象按照指定的Path移动的动画,虽然我们也可以通过控制动画的旋转和偏移实现对象的移动,但路径动画更专业,它的实现更加简洁明了。
路径动画中最常用的是MatrixAnimationUsingPath,它通常用于控制对象的MatrixTransform,一个简单的例子如下:
1 <Canvas > 2 <Canvas.Resources> 3 <PathGeometry x:Key="path" Figures="M 10,100 C 35,0 135,0 160,100 180,190 285,200 310,100" /> 4 <Storyboard x:Key="pathStoryboard" > 5 <MatrixAnimationUsingPath PathGeometry="{StaticResource path}" 6 Storyboard.TargetName="ButtonMatrixTransform" 7 Storyboard.TargetProperty="Matrix" 8 DoesRotateWithTangent="True" 9 Duration="0:0:5" RepeatBehavior="Forever" > 10 </MatrixAnimationUsingPath> 11 </Storyboard> 12 </Canvas.Resources> 13 14 <Canvas.Triggers> 15 <EventTrigger RoutedEvent="Control.Loaded"> 16 <BeginStoryboard Storyboard="{StaticResource pathStoryboard}" /> 17 </EventTrigger> 18 </Canvas.Triggers> 19 20 <Path Data="{StaticResource path}" Stroke="Black" StrokeThickness="1" /> 21 22 <Button Width="50" Height="20" > 23 <Button.RenderTransform> 24 <MatrixTransform x:Name="ButtonMatrixTransform" /> 25 </Button.RenderTransform> 26 </Button> 27 </Canvas>