关键帧动画
来源:互联网 发布:opencv分水岭算法 编辑:程序博客网 时间:2024/04/29 15:35
<Page x:Class="关键帧动画.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" WindowTitle="关键帧动画"> <Canvas> <Ellipse Fill="Magenta" Width="50" Height="50" Canvas.Left="10" Canvas.Top="20"> <Ellipse.RenderTransform> <TranslateTransform x:Name="tt" X="0" Y="0"/> </Ellipse.RenderTransform> </Ellipse> <Rectangle Width="50" Height="50" Fill="Blue" Opacity="0.68" Canvas.Left="35" Canvas.Top="20" Name="MyRect"/> <Button Name="buttonCircleBegin" Canvas.Left="50" Canvas.Top="90">圆开始运动</Button> <Button Name="buttonCircleStop" Canvas.Left="130" Canvas.Top="90">圆停止运动</Button> <Button Name="buttonRectBegin" Canvas.Left="208" Canvas.Top="90">正方形开始运动</Button> <Button Name="buttonRectStop" Canvas.Left="310" Canvas.Top="90">正方形停止运动</Button> <Canvas.Triggers> <EventTrigger RoutedEvent="Button.Click" SourceName="buttonCircleBegin"> <BeginStoryboard Name="bsb1"> <Storyboard> <!--动画过程先按给定值,给定的时间走一遍,结束后再反向走一遍--> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="tt" Storyboard.TargetProperty="X" Duration="0:0:10" AutoReverse="True" RepeatBehavior="Forever"> <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/> <LinearDoubleKeyFrame Value="386" KeyTime="0:0:2"/> <LinearDoubleKeyFrame Value="50" KeyTime="0:0:5"/> <LinearDoubleKeyFrame Value="200" KeyTime="0:0:8"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </EventTrigger> <EventTrigger RoutedEvent="Button.Click" SourceName="buttonCircleStop"> <StopStoryboard BeginStoryboardName="bsb1"/> </EventTrigger> <EventTrigger RoutedEvent="Button.Click" SourceName="buttonRectBegin"> <BeginStoryboard Name="bsb2"> <Storyboard> <DoubleAnimation Storyboard.TargetName="MyRect" Storyboard.TargetProperty="(Canvas.Left)" From="100" To="360" Duration="0:0:10" AutoReverse="true" RepeatBehavior="Forever"/> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="MyRect" Storyboard.TargetProperty="(Canvas.Top)" Duration="0:0:10" AutoReverse="True" RepeatBehavior="Forever"> <LinearDoubleKeyFrame Value="22" KeyTime="0:0:0"/> <LinearDoubleKeyFrame Value="120" KeyTime="0:0:2"/> <LinearDoubleKeyFrame Value="22" KeyTime="0:0:6"/> <LinearDoubleKeyFrame Value="120" KeyTime="0:0:8"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </EventTrigger> <EventTrigger RoutedEvent="Button.Click" SourceName="buttonRectStop"> <StopStoryboard BeginStoryboardName="bsb2"/> </EventTrigger> </Canvas.Triggers> </Canvas></Page>