路径动画是一种专门用于将对象按照指定的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>
View Code

相关文章: