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的两种方法
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默.我眼中的程序员大多都不 ...
随机推荐
- RecyclerView源码解析 - 分割线
猜想: 既然考虑了分割线,那么子View在测量时候肯定要去考虑分割线留出的位置 直接measureChild()方法 猜想: 分割线会调用绘制的方法 onDraw()
- Expo大作战(十三)--expo如何自定义状态了statusBar以及expo中如何处理脱机缓存加载 offline support
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- 如何在 Azure 中自定义 Windows 虚拟机
若要以快速一致的方式配置虚拟机 (VM),通常需要某种形式的自动化. 自定义 Windows VM 的一种常用方法是使用适用于 Windows 的自定义脚本扩展. 本教程介绍如何执行下列操作: 使用自 ...
- SQL Server 子查询错误:No column name was specified for column 2 of 'a' error (转载)
问: I have a MySQL query and I ran it working fine but same query showing error in SQL Server. SQL Se ...
- 超经典sql练习题,在teradata上实现
题目来源:https://blog.csdn.net/flycat296/article/details/63681089 teradata实现: drop table student; create ...
- 工作中遇到的问题收集--.NET
一.拒绝访问 temp 目录.用来运行 XmlSerializer 的标识“IIS APPPOOL\MZJYMIS”没有访问 temp 目录的足够权限.CodeDom 将使用进程正在使用的用户帐户进行 ...
- Docker容器学习与分享04
Docker容器的基本操作(2) 基于docker分享03的centos容器,接着学习docker容器的基本操作. docker分享03中创建了一个centos镜像,如果想要查看容器的具体信息就要使用 ...
- November 01st, 2017 Week 44th Wednesday
People always want to lead an active life, and is not it? 人们总要乐观生活,不是吗? Be active, and walk towards ...
- Nginx反向代理及简单负载均衡配置
nginx配置文件主要分为六个区域:main section.events section.http section.sever section.location section.upstream s ...
- 协程运行原理猜测: async/await
1.根据await调用链寻找最终的生产者或服务提供者: 2.请求服务: 3.进行执行环境切换,跳出顶层函数(第一个无await修饰的函数),执行后面的语句: 4.服务完成,将服务数据复制给最底层的aw ...