原文:WPF编程,通过Path类型制作沿路径运动的动画另一种方法。

版权声明:我不生产代码,我只是代码的搬运工。 https://blog.csdn.net/qq_43307934/article/details/87358989

上一篇文章给了一个这方面的例子,那个文章里是通过后台按钮事件进行动画的开始、停止、继续等。

这里给出的是通过前台XAML来实现。

1、前台

定义路径、定义运动的主体,这里是一圆。

        <Path Stroke="Black"
StrokeThickness="1"
Data="M 96 288 C 576 0,0 0,480 288" /> <Path Fill="Blue">
<Path.Data>
<EllipseGeometry x:Name="elips"
Center="90 290"
RadiusX="12"
RadiusY="12" />
</Path.Data>
</Path>

2、增加控制按钮

增加四个控制按钮,

增加四个触发动作。

        <StackPanel>
<Button Width=" 100"
Height=" 30"
x:Name="Beginbutton"
Content="开始"
Margin="258,0,259,0" />
<Button Width=" 100"
x:Name="Pausepbutton"
Height=" 30"
Content="暂停"
Margin="258,0,259,0" />
<Button Width=" 100"
x:Name="Resumebutton"
Height=" 30"
Content="恢复"
Margin="258,0,259,0" />
<Button Width=" 100"
x:Name="Stopbutton"
Height=" 30"
Content="停止"
Margin="258,0,259,0" /> <!-- 触发器及故事板的组合 -->
<StackPanel.Triggers>
<!-- 很好翻译了:在按键startButton被点击的时候触发 -->
<EventTrigger SourceName="Beginbutton"
RoutedEvent="Button.Click">
<!-- 事件触发以后做什么呢?由故事板来解决,它来产生动画效果。 -->
<BeginStoryboard x:Name="MyBeginStoryboard">
<Storyboard x:Name="story"
Storyboard.TargetName="elips"
Storyboard.TargetProperty="Center">
<PointAnimationUsingPath Duration="0:0:3"
AutoReverse="True"
RepeatBehavior="Forever">
<PointAnimationUsingPath.PathGeometry>
<PathGeometry Figures="M 96 288 C 576 0,0 0,480 288"
</PointAnimationUsingPath.PathGeometry>
</PointAnimationUsingPath>
</Storyboard>
</BeginStoryboard>
</EventTrigger> <!-- 同理可证:pauseButton被点击的时候故事全部暂停 :PauseStoryboard -->
<EventTrigger SourceName="Pausepbutton"
RoutedEvent="Button.Click">
<PauseStoryboard BeginStoryboardName="MyBeginStoryboard">
</PauseStoryboard>
</EventTrigger>
<!-- 同理可证:pauseButton被点击的时候故事全部重新开始 :ResumeStoryboard -->
<EventTrigger RoutedEvent="Button.Click"
SourceName="Resumebutton">
<ResumeStoryboard BeginStoryboardName="MyBeginStoryboard">
</ResumeStoryboard>
</EventTrigger>
<!-- 同理可证:pauseButton被点击的时候故事全部重新完全停掉 :StopStoryboard -->
<EventTrigger RoutedEvent="Button.Click"
SourceName="Stopbutton">
<StopStoryboard BeginStoryboardName="MyBeginStoryboard">
</StopStoryboard>
</EventTrigger>
</StackPanel.Triggers> </StackPanel>

 

WPF编程,通过Path类型制作沿路径运动的动画另一种方法。的更多相关文章

  1. WPF编程,通过Path类型制作沿路径运动的动画一种方法。

    原文:WPF编程,通过Path类型制作沿路径运动的动画一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/de ...

  2. WPF编程,通过Double Animation动态更改控件属性的一种方法。

    原文:WPF编程,通过Double Animation动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/a ...

  3. WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法。

    原文:WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/articl ...

  4. 用css3制作旋转加载动画的几种方法

    以WebKit为核心的浏览器,例如Safari和Chrome,对html5有着很好的支持,在移动平台中这两个浏览器对应的就是IOS和Android.最近在开发一个移动平台的web app,那么就有机会 ...

  5. 网络编程(一):用C#下载网络文件的2种方法

    使用C#下载一个Internet上的文件主要是依靠HttpWebRequest/HttpWebResonse和WebClient.具体处理起来还有同步和异步两种方式,所以我们其实有四种组合. 1.使用 ...

  6. VS编程,C#串口通讯,通过串口读取数据的一种方法

    一.可能需要的软件:1.虚拟串口vspd(Virtual Serial Port Driver,用来在电脑上虚拟出一对串口,模拟通讯. 2.友善串口调试助手,用来发送.读取数据. 二.思路1.查询本机 ...

  7. filebeat配置不同路径下的log的两种方法

    第一种方法: vim /etc/filebeat/filebeat.yml filebeat.inputs: # Each - is an input. Most options can be set ...

  8. Java从文件路径中获取文件名的几种方法

    举例:String fName =" G:\Java_Source\navigation_tigra_menu\demo1\img\lev1_arrow.gif " 方法一: 1 ...

  9. C# web api 返回类型设置为json的两种方法

    每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默.我眼中的程序员大多都不 ...

随机推荐

  1. AWS CSAA -- 04 AWS Object Storage and CDN - S3 Glacier and CloudFront(二)

    015 Version Control - Lab 016 Cross Region Replication 017 Lifecycle Management  Glacier - Lab 018 C ...

  2. SQL2005中的事务与锁定(九)-(1)- 转载

    ------------------------------------------------------------------------ -- Author : HappyFlyStone - ...

  3. Linux 安装MongoDB 并设置防火墙,使用远程客户端访问

    1. 下载 MongoDB 提供了 linux 各发行版本 64 位的安装包  下载地址:https://www.mongodb.com/download-center#community 2. 安装 ...

  4. net.exe use命令的使用

    net.exe use 查看当前的连接 net.exe use * /del /y 断开所有连接 net.exe use \\server\share "password" /us ...

  5. 乘风破浪:LeetCode真题_034_Find First and Last Position of Element in Sorted Array

    乘风破浪:LeetCode真题_034_Find First and Last Position of Element in Sorted Array 一.前言 这次我们还是要改造二分搜索,但是想法却 ...

  6. foreach语句的用法

    foreach语句: foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本.foreach并不是一个关键字,习惯上将这种特殊的for ...

  7. C++第六次作业

    前言 拿到作业的时候,整个人都不好了,虽然之前和同学说以后一起写游戏,画界面,然而现在的自己对界面的知识一窍不通,虽然同学分享了一些资料,但是通过这次作业,发现自己火候还是不够-- 问题描述及仓库地址 ...

  8. [python]如何理解uiautomator里面的 right,left,up,down 及使用场景

    关于Android自动化uiautomator 框架,前面有讲在有些场景下,比如需要在设置界面中将某些选项开关打开或者关闭(前提是这些选项和开关的控件(resourceId,className,tex ...

  9. JavaScript利用Date实现简单的倒计时实例

    介绍 Date对象,是操作日期和时间的对象.Date对象对日期和时间的操作只能通过方法.Date在js中和Array类似,都是拥有自己的特殊方法的特殊对象. 创建 Date 对象的语法: var my ...

  10. Tushare test

    查看版本 import tushare print(tushare.__version__) 1.2.12 初步的调用方法为: import tushare as ts ts.get_hist_dat ...