04.Animation

news2024/12/23 9:28:55

参考JusterZhu视频和文档,ppt文档基本全抄
基本没看懂,过几天有时间了研究下

一、Animation

1.什么是Animation?
动画是快速循环播放一系列图像(其中每个图像与下一个图像略微不同)给人造成的一种幻觉。再回到WPF开发中动画是让控件表现出多样性具有动画行为。

2.有哪些应用?
3D、多媒体、线性、颜色、形变、翻转、缩放、渐变、以及多种动画效果组合等。

3.如何实现Animation?
若要使属性具有动画功能,属性必须满足以下三个要求:
它必须是依赖属性。
它必须属于从继承的类, DependencyObject 并实现 IAnimatable 接口。
必须存在可用的兼容动画类型。 (如果 WPF 未提供,你可以创建自己的。)
WPF 包含许多具有属性的对象 IAnimatable 。 控件(如 Button 和 TabControl )和 Panel 和 Shape 对象从继承 DependencyObject 。 其中大多数属性都是依赖属性。

4.步骤如下:
1.创建故事版(Storyboard 控制故事版内动画的开始、结束等;故事版内可以定义多个不同的动画)
2.选择动画形式(Double、Path等;动画自身也有启停)
3.指定动画行为、执行动画的元素
4.动画时长(Time line)
5.开始动画
6.动画执行
7.结束动画

1.1 TimeLine

Timeline表示时间段。 它提供的属性让你可以指定该时间段的长度、开始时间、重复次数、该时间段内时间进度的快慢等。
从时间线类继承的类可提供附加功能,例如动画和媒体播放。 WPF 提供以下 Timeline 类型。
在这里插入图片描述
Timeline表示时间段,并且可以通过不同的方式描述时间线的长度。 下表定义了几个用于描述时间线长度的术语。
在这里插入图片描述
Duration: 动画播放时间长度
RepeatBehavior: 重复行为(重复次数)
FillBehavior: 动画结束后的行为(保持动画的结束状态或恢复到初始状态)
AutoReverse: 按相反的顺序重复播放动画
SpeedRatio: 动画播放速率(用于加速或减速播放)
BeginTime: 动画播放的起始时间

1.2 Double Animation

使元素淡入和淡出的一种方法是对其属性进行动画处理 Opacity 。 由于 Opacity 属性的类型为 Double ,因此需要一个生成双精度值的动画。 DoubleAnimation是一种动画。 DoubleAnimation创建两个双精度值之间的转换。 若要指定其起始值,请设置其 From 属性。 若要指定其结束值,请设置其 To 属性。

1.3 Path Animation

沿着路径移动对象的一种方法是使用 MatrixTransform 和 MatrixAnimationUsingPath 来沿复杂路径转换对象。 下面的示例通过使用 MatrixAnimationUsingPath 对象对的属性进行动画处理,演示了此方法 Matrix MatrixTransform 。 MatrixTransform应用于按钮并使其沿着曲线路径移动。
在这里插入图片描述

1.4 From/To/By Animation

From/To/By 动画是的一种类型 AnimationTimeline ,它在起始值和结束值之间创建过渡。 完成转换所需的时间取决于 Duration 动画的。
可以通过 Storyboard 在标记和代码中使用,或在代码中使用方法,将 From/To/By 动画应用到属性 BeginAnimation 。From/To/By 动画的目标值不能超过两个。 如果需要具有两个以上目标值的动画,请使用关键帧。

1.5 Key-Frame Animation

与 From/To/By 动画类似,关键帧动画对目标属性的值进行动画处理。 它在其的目标值之间创建转换 Duration 。 但是,From/To/By 动画可以在两个值之间创建过渡,而单个关键帧动画可以在任意数量的目标值之间创建过渡。 不同于 From/To/By 动画,关键帧动画没有设置其目标值所需的 From、To 或 By 属性。 关键帧动画的目标值使用关键帧对象进行描述,因此称作“关键帧动画”。 若要指定动画的目标值,请创建关键帧对象并将其添加到动画的 KeyFrames 集合中。 动画运行时,将在指定的帧之间过渡。
某些关键帧方法除支持多个目标值外,甚至还支持多个内插方法。 动画的内插方法定义了从一个值过渡到下一个值的方式。 有三种内插类型:离散、线性和曲线。
若要使用关键帧动画进行动画处理,需要完成下列步骤。
声明动画并指定其 Duration ,就像对 from/to/by 动画执行此动画。
对于每个目标值,创建适当类型的关键帧,设置其值和 KeyTime ,然后将其添加到动画的 KeyFrames 集合中。
以针对 From/To/By 动画的方式将该动画与属性相关联。

DoubleAnimationUsingKeyFrames
Int32AnimationUsingKeyFrames
PointAnimationUsingKeyFrames
ColorAnimationUsingKeyFrames
SizeAnimationUsingKeyFrames
ObjectAnimationUsingKeyFrames
DoubleAnimationUsingPath

1.6 Custom Animation

实现自定义动画的步骤如下:

1.继承某个 关键帧类(如)来创建自定义关键帧对象 DoubleKeyFrame 。 此方法使用 WPF 动画引擎的大部分内置功能。

2.重写GetCurrentValue和GetCurrentValueCore方法

3.自定义动画属性和动画行为

4.Xaml声明Storyboard资源引用写好的动画并制定好key

5.通过key引用动画,并制定好触发动画的条件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1139564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信公众号分销商城源码系统+多商户入驻+互动直播+整点秒杀 带部署教程

今天罗峰来给大家分享一款微信公众号分销商城源码系统。微信公众号的普及以及电商行业的兴起,一种新型的商业模式——微信公众号分销商城应运而生。这种模式通过微信平台,将线上与线下的商业活动完美结合,为企业提供了更广阔的销售渠道。以下…

如何在群晖NAS中搭建WebDav服务,并实现公网访问

🎬 鸽芷咕:个人主页 🔥 个人专栏:《速学数据结构》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 1. 在群晖套件中心安装WebDav Server套件1.1 安装完成后,启动webdav服务,并勾选HTTP复选…

stable-diffusion-webui环境部署

stable-diffusion-webui环境部署 1. 环境创建2. 安装依赖库3.下载底模4.运行代码5. 报错信息报错1报错2 1. 环境创建 创建虚拟环境 conda create -n env_stable python3.10.0进入虚拟环境 conda activate env_stableclone源码 git clone https://github.com/AUTOMATIC1111/stab…

设备管理软件管理系统

从设备检查到设备保养,再到设备维护,全方位视角掌握设备状态的管理软件。让企业员工可以随时随地的查看设备的各种信息:巡检信息、保养计划、备件更换提醒、维修保养资料等。 1、一物一码,建立设备电子档案“身份证” 精准管控每一…

31 select max/min/avg/sum/count/group_concat 的实现

前言 avg, sum, max, min, count 的相关使用 这里来调试一下 具体的情况, 以及看一下 索引对于相关操作的影响 测试数据表如下 CREATE TABLE tz_test (id int(11) unsigned NOT NULL AUTO_INCREMENT,field1 varchar(12) DEFAULT NULL,field2 varchar(16) DEFAULT NULL,PRI…

漏洞复现--企望制造ERP系统 RCE

免责声明: 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

ADB加密实例

ADB加密实例 1. adb shell加密访问2 adb文件传输命令加密访问 通常我们的MIFI USB端口仅枚举rndis和mass端口,为了便于开发人员、工厂维护人员调试和运营商认证,会预留出可通过SCSI指令切口支持ADB端口,该机制可能会被作为切入点破解侵入系统…

OA管理系统源码

OA管理系统源码 功能介绍 1、个人办公 a、内部邮件(写邮件,收邮件,草稿箱,已删除,已发送) b、Internet邮件(写邮件,收邮件,草稿箱,已发送,已删…

Java实现人脸识别和指纹认证

我们在开发中经常会有人脸识别的需求,今天就实现一个简单的人脸识别,调用的第三方SDK服务 0.先去注册服务 登录网址 虹软视觉开放平台—以免费人脸识别技术为核心的人脸识别算法开放平台 点击进行注册 进入之后新增我的服务 成功之后点击首页人脸识别…

《SpringBoot项目实战》第一篇—接口参数的一些弯弯绕绕

系列文章导航 第一篇—接口参数的一些弯弯绕绕 第二篇—接口用户上下文的设计与实现 第三篇—留下用户调用接口的痕迹 第四篇—接口的权限控制 第五篇—接口发生异常如何统一处理 本文参考项目源码地址:summo-springboot-interface-demo 前言 大家好!…

MessageQueue 深入理解Android卷2 学习笔记

MessageQueue类封装了与消息队列有关的操作,一个以消息驱动的系统中,最重要部分就是消息队列和消息处理循环。 MessageQueue的核心代码在native层,可以处理java和native的事件 1.1MessageQueue创建 构造方法,调用nativeInit fra…

外网访问|SD-WAN跨境网络专线助力企业摆脱网络困境

在如今国际市场的大趋势下,跨境访问和沟通对于外贸企业来说至关重要,国际市场的竞争越来越激烈,外贸企业需要与全球各地的合作伙伴、客户和供应商保持紧密的跨境访问和沟通。而在解决跨境网络困境方面,MPLS、VPN和SD-WAN是常见的选…

CVE漏洞复现-CVE-2023-38831 WinRAR代码执行漏洞

CVE-2023-38831 WinRAR代码执行漏洞 WinRAR介绍 WinRAR 是一款功能强大的压缩包管理器,它是档案工具RAR在 Windows环境下的图形界面。 该软件可用于备份数据,缩减电子邮件附件的大小,解压缩从 Internet 上下载的RAR、ZIP及其它类型文件&…

装了固态硬盘Win10开机很慢的解决方法

在Win10电脑中,用户反映自己装了固态硬盘后,电脑开机变得很慢,想知道解决此问题的方法。接下来小编给大家详细介绍关于解决装了固态硬盘Win10电脑开机很慢的问题,解决后Win10电脑开机速度就能变得更快。 装了固态硬盘Win10开机很慢…

【速看】如何通过合理的封装,让你的自动化脚本更上一层楼!

1. 前言 上一篇推文利用一个在图片范围内实现随机坐标点击的例子,去教会大家如何将自己想要的效果实现出来,受到大家的热情反响,在我们官方讨论群中,还有大佬对我们的示例代码进行优化改进,做了很多合理的函数封装&…

B链圆桌派 — 创新的去中心化存储网络 BNB GREENFIELD 主网上线

B链圆桌派 主題: BNB GREENFIELD主网上线 - 创新的去中心化资料储存网路 日期: 10/19, 8 pm utc8 頻道: BNB Chain 华语电报群 ○ AMA环节 ○ BNB GREENFIELD主网上线 一、回复主持人问题 嘉宾回答主持人提出的问题。本环节请大家保持安静,专注嘉宾…

Flink CDC 2.0 主要是借鉴 DBLog 算法

DBLog 算法原理 DBLog 这个算法的原理分成两个部分,第一部分是分 chunk,第二部分是读 chunk。分 chunk 就是把一张表分为多个 chunk(桶/片)。我可以把这些 chunk 分发给不同的并发的 task 去做。例如:有 reader1 和 re…

Windows详细安装和彻底删除RabbitMQ图文流程

RabbiitMQ简介 RabbitMQ是实现了高级消息队列协议(AMQP:Advanced Message Queue Protocol)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而聚类和故障转移是构建在开放…

Redis -- 基础知识3 数据类型及指令

FLUSHALL:清空所有键值对操作(最好别搞,删库要被绳之以法的) 1.string类型 1.介绍 1.redis的字符串,直接按照二进制进行存储,所以可以存储任何数据,取出时不需要转码 2.redis的string类型,限制大小最大为512M,因为为单线程模型为了操作短平快 2.操作 1.set与get set key value …

财务数字化转型是什么?_光点科技

财务数字化转型是当今企业发展中的一项关键策略,旨在借助先进的数字技术,重新塑造和优化财务管理体系,以适应迅速变化的商业环境。这一转型不仅仅是技术的升级,更是对企业财务理念和流程的全面升级和改革。 财务数字化转型的核心在…