WPF编程,通过Path类型制作沿路径运动的动画另一种方法。
原文: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类型制作沿路径运动的动画另一种方法。的更多相关文章
- WPF编程,通过Path类型制作沿路径运动的动画一种方法。
原文:WPF编程,通过Path类型制作沿路径运动的动画一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/de ...
- WPF编程,通过Double Animation动态更改控件属性的一种方法。
原文:WPF编程,通过Double Animation动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/a ...
- WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法。
原文:WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/articl ...
- 用css3制作旋转加载动画的几种方法
以WebKit为核心的浏览器,例如Safari和Chrome,对html5有着很好的支持,在移动平台中这两个浏览器对应的就是IOS和Android.最近在开发一个移动平台的web app,那么就有机会 ...
- 网络编程(一):用C#下载网络文件的2种方法
使用C#下载一个Internet上的文件主要是依靠HttpWebRequest/HttpWebResonse和WebClient.具体处理起来还有同步和异步两种方式,所以我们其实有四种组合. 1.使用 ...
- VS编程,C#串口通讯,通过串口读取数据的一种方法
一.可能需要的软件:1.虚拟串口vspd(Virtual Serial Port Driver,用来在电脑上虚拟出一对串口,模拟通讯. 2.友善串口调试助手,用来发送.读取数据. 二.思路1.查询本机 ...
- filebeat配置不同路径下的log的两种方法
第一种方法: vim /etc/filebeat/filebeat.yml filebeat.inputs: # Each - is an input. Most options can be set ...
- Java从文件路径中获取文件名的几种方法
举例:String fName =" G:\Java_Source\navigation_tigra_menu\demo1\img\lev1_arrow.gif " 方法一: 1 ...
- C# web api 返回类型设置为json的两种方法
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默.我眼中的程序员大多都不 ...
随机推荐
- Java:运算符的问题
算术运算符: 算术运算符的注意问题 1. 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1.但被模数是负数就另当别论. -5%3=-2:-5%-3=-2:符号跟被模数(左边). 2. 对于除号 ...
- Python笔记(十三):urllib模块
(一) URL地址 URL地址组件 URL组件 说明 scheme 网络协议或下载方案 net_loc 服务器所在地(也许含有用户信息) path 使用(/)分割的文件或CGI应用的路径 p ...
- Python+Selenium笔记(十五)调用JS
(一) 方法 方法 简单说明 execute_async_script(script, args) 异步执行JS代码 script:被执行的JS代码 args:js代码中的任意参数 execute_s ...
- Ionic模版的使用
Hybird HTML5 App(移动应用开发)之4.Ionic模版的使用 在Windows系统下使Ionic模版,可以使用之前安装的Git工具中的Git Bash.在Mac系统中可以直接使用系统自带 ...
- Ubuntu 18.04 修改为静态IP
1.进入/etc/netplan目录 cd /etc/netplan 2.查看文件 ls 3.编辑 01-network-manager-all.yaml vim 01-network-manager ...
- python生成式和生成器
一,生成式和生成器 1,列表生成式 mylist = [ i*i for i in range(3) if i>1 ] print(mylist) 运行结果:[4] 可以发现,快速生成列表的表达 ...
- 处理 Windows 虚拟机的计划内维护通知
Azure 定期执行更新,以提高虚拟机的主机基础结构的可靠性.性能及安全性. 更新包括如下更改:修补托管环境或升级以及解除硬件授权. 大多数此类更新在执行时不会影响托管的虚拟机. 但是,也会存在更新产 ...
- excel文件使用navicat工具导入mysql的方法
1.在excel文件的sheet上,第1行下面插入一行,对应DB里面的字段名称,方便后面导入时做字段匹配: 2.使用Navicat ,打开工具,选择表所在的数据库,然后点击数据库名字,右键Tables ...
- 设置泛域名和设置IIS下面不同网站通过不同域名公用80端口的操作指引
原文链接: http://www.lookdaima.com/WebForms/WebPages/Blanks/Pm/Docs/DocItemDetail.aspx?id=4be204ca-249b- ...
- Flink 的广播变量
Flink 支持广播变量,就是将数据广播到具体的 taskmanager 上,数据存储在内存中,这样可以减缓大量的 shuffle 操作: 比如在数据 join 阶段,不可避免的就是大量的 shuff ...