WPF备忘录四(事件动画)
2012-01-14 09:47
190 查看
<Grid> <Rectangle Height="65" HorizontalAlignment="Left" Fill="Blue" Margin="133,67,0,0" Name="rect" Stroke="Black" VerticalAlignment="Top" Width="73"> <Rectangle.RenderTransform> <RotateTransform Angle="0" CenterX="20" CenterY="20" x:Name="rt"></RotateTransform> </Rectangle.RenderTransform> </Rectangle> <Button Content="开始" Height="23" HorizontalAlignment="Left" Margin="32,189,0,0" Name="btnStart" VerticalAlignment="Top" Width="75" /> <Button Content="暂停" Height="23" HorizontalAlignment="Left" Margin="113,189,0,0" Name="btnPause" VerticalAlignment="Top" Width="75" /> <Button Content="继续" Height="23" HorizontalAlignment="Left" Margin="194,189,0,0" Name="btnResume" VerticalAlignment="Top" Width="75" /> <Button Content="停止" Height="23" HorizontalAlignment="Right" Margin="0,189,153,0" Name="btnStop" VerticalAlignment="Top" Width="75" /> <Grid.Triggers> <!--开始--> <EventTrigger SourceName="btnStart" RoutedEvent="Button.Click"> <EventTrigger.Actions> <BeginStoryboard x:Name="bs"> <Storyboard RepeatBehavior="Forever"> <DoubleAnimation Storyboard.TargetName="rt" Storyboard.TargetProperty="Angle" From="0" To="360" Duration="00:00:10"></DoubleAnimation> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> <!--暂停--> <EventTrigger SourceName="btnPause" RoutedEvent="Button.Click"> <EventTrigger.Actions> <PauseStoryboard BeginStoryboardName="bs"></PauseStoryboard> </EventTrigger.Actions> </EventTrigger> <!--继续--> <EventTrigger SourceName="btnResume" RoutedEvent="Button.Click"> <ResumeStoryboard BeginStoryboardName="bs"></ResumeStoryboard> </EventTrigger> <!--停止--> <EventTrigger SourceName="btnStop" RoutedEvent="Button.Click"> <StopStoryboard BeginStoryboardName="bs"></StopStoryboard> </EventTrigger> </Grid.Triggers> </Grid>
利用代码方式处理动画事件:
<Grid>
<Rectangle Height="65" HorizontalAlignment="Left" Fill="Blue" Margin="133,67,0,0" Name="rect" Stroke="Black" VerticalAlignment="Top" Width="73">
<Rectangle.RenderTransform>
<RotateTransform Angle="0" CenterX="20" CenterY="20" x:Name="rt"></RotateTransform>
</Rectangle.RenderTransform>
</Rectangle>
<Button Content="开始" Height="23" HorizontalAlignment="Left" Margin="32,189,0,0" Name="btnStart" VerticalAlignment="Top" Width="75" Click="btnStart_Click" />
<Button Content="暂停" Height="23" HorizontalAlignment="Left" Margin="113,189,0,0" Name="btnPause" VerticalAlignment="Top" Width="75" />
<Button Content="继续" Height="23" HorizontalAlignment="Left" Margin="194,189,0,0" Name="btnResume" VerticalAlignment="Top" Width="75" />
<Button Content="停止" Height="23" HorizontalAlignment="Right" Margin="0,189,153,0" Name="btnStop" VerticalAlignment="Top" Width="75" />
</Grid>
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void btnStart_Click(object sender, RoutedEventArgs e) { DoubleAnimation da = new DoubleAnimation(0,100,new Duration(TimeSpan.FromSeconds(5))); da.RepeatBehavior = RepeatBehavior.Forever; //永久循环 da.AutoReverse = true; //来回往复 //第一种方式 //rect.BeginAnimation(Rectangle.WidthProperty, da); //第二种方式,可以添加多个动画 Storyboard sb = new Storyboard(); Storyboard.SetTargetProperty(da,new PropertyPath(Rectangle.WidthProperty)); sb.Children.Add(da); sb.Begin(rect); } }
相关文章推荐
- [WPF] 动画Completed事件里获取执行该动画的UI对象
- wpf 控件多层嵌套,事件冒泡对动画效果的影响
- WPF当属性值改变时利用PropertyChanged事件来加载动画
- [WPF] 动画Completed事件里获取执行该动画的UI对象
- WPF Storyboard 动画播放完毕时触发的事件
- WPF备忘录五(路径动画)
- WPF的动画(1)基本动画
- MSDN上关于WPF的动画概述
- WPF翻转动画
- unity中处理animator动画事件
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十一)制作精美的Mini地图①
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十八) 落雷!治疗!陷阱!连锁闪电!多段群伤!魔法之终极五重奏①
- JQuery中的事件及动画用法实例
- 对html5中canvas的事件模拟及动画编程
- WPF 执行完一段动画后再关闭窗口
- 让你的动画响应键盘事件KeyboardEvent
- WPF学习之路由事件
- jQuery事件与动画
- WPF中属性经动画处理后无法更改的问题
- css3用AnimationEnd判断动画是否完成, css3在动画完成后执行事件