首页 > 其他分享 >WPF学习 - 动画基础

WPF学习 - 动画基础

时间:2022-09-26 17:25:07浏览次数:75  
标签:动画 插值 数据类型 学习 类型 WPF 属性

1. WPF中的动画(Animation),是一种属性动画。技术上来说,它是让属性从一个值,变化到另一个值的过程。因此,有两条条重要的特性:

  1.1 只能为依赖属性应用动画
  1.2 动画只是临时更改属性的值,并不真正的改变属性值。这与依赖属性的工作方式有关。

2. WPF动画,分为三种:插值动画、关键帧动画、路径动画
  2.1 插值动画:
    1)定义:插值动画是指,属性值从某一个值,经过一段时间后,连续变化值另一个值的动画。
        例如宽度属性,类型为double,可以设定动画为在1s的时间内,值从0变到10。此时WPF内部会采用插值算法,填充1与10之间的值。
    2)命名规则:数据类型+Animation。例如double类型动画:DoubleAnimation

  2.2 关键帧动画:
    1)定义:对于属性类型为离散量类型的,因为无法进行插值运算。因此只能填充“帧”。
        例如Name属性,类型是string。当属性值从“raymond” 变到 “jack”的时候,是无法进行插值运算的。此时就只能用关键帧来代替。在某一个时候,显示“raymond”,然后在下一个时候,显示“jack”。
    2)命名规则:数据类型+AnimationUsingKeyFrames。例如double类型:DbleAnimationUsingKeyFrames

  2.3 路径动画:
    1)路径动画,是指让某个元素用来沿着路径的方向进行变换的动画。
    2)命名规则:数据类型+AnimationUsingPath。例如double类型DoubleAnimationUsingPath

3. 动画与数据类型有关。因为针对不同的数据类型,有不同的“填充”方式。例如数值类型,可以采用插值算法调整起始值与中止值之间的间隔,而对于离散量,就得用“帧”来填充。

从下面的Animation类型的继承关系来看,每一种插值动画,都会有一个对应的关键帧动画,少数的几个还具有路径动画。

 

未完待续...

 

Animation类的继承关系:

Object
    DispatcherObject
        DependencyObject
            Freezable
                Animatable
                    Timeline
                        AnimationTimeline
                            BooleanAnimationBase            // bool类型的值的动画
                                BooleanAnimationUsingKeyFrames
                            ByteAnimationBase              // byte类型的值的动画
                                ByteAnimation
                                ByteAnimationUsingKeyFrames
                            CharAnimationBase              // char类型的值的动画
                                CharAnimationUsingKeyFrames
                            ColorAnimationBase              // Color类型的值的动画
                                ColorAnimation
                                ColorAnimationUsingKeyFrames
                            DecimalAnimationBase            // Decimal类型的值的动画
                                DecimalAnimation
                                DecimalAnimationUsingKeyFrames
                            DoubleAnimationBase             // double类型的值的动画
                                DoubleAnimation
                                DoubleAnimationUsingKeyFrames
                                DoubleAnimationUsingPath  
                            Int16AnimationBase              // Int16类型的值的动画
                                Int16Animation
                                Int16AnimationUsingKeyFrames
                            Int32AnimationBase              // Int32类型的值的动画
                                Int32Animation
                                Int32AnimationUsingKeyFrames
                            Int64AnimationBase              // Int64类型的值的动画
                                Animation.Int64Animation
                                Int64AnimationUsingKeyFrames                        
                            MatrixAnimationBase              // Matrix类型的值的动画
                                MatrixAnimationUsingKeyFrames
                                MatrixAnimationUsingPath
                            ObjectAnimationBase               // Object类型的值的动画
                                ObjectAnimationUsingKeyFrames
                            Point3DAnimationBase              // Point3D类型的值的动画
                                Point3DAnimation
                                Point3DAnimationUsingKeyFrames
                            PointAnimationBase               // Point类型的值的动画
                                PointAnimation
                                PointAnimationUsingKeyFrames
                                PointAnimationUsingPath
                            QuaternionAnimationBase            // Quaternion(四元组)类型的值的动画
                                QuaternionAnimation
                                QuaternionAnimationUsingKeyFrames
                            RectAnimationBase                // Rect类型的值的动画
                                RectAnimation
                                RectAnimationUsingKeyFrames
                            Rotation3DAnimationBase            // Rotation3D类型的值的动画
                                Rotation3DAnimation
                                Rotation3DAnimationUsingKeyFrames
                            SingleAnimationBase               // Single类型的值的动画
                                SingleAnimation
                                SingleAnimationUsingKeyFrames
                            SizeAnimationBase                // Size类型的值的动画
                                SizeAnimation
                                SizeAnimationUsingKeyFrames
                            StringAnimationBase               // string类型的值的动画
                                StringAnimationUsingKeyFrames
                            ThicknessAnimationBase             // Thickness类型的值的动画
                                ThicknessAnimation
                                ThicknessAnimationUsingKeyFrames
                            Vector3DAnimationBase             // Vector3D类型的值的动画
                                Vector3DAnimation
                                Vector3DAnimationUsingKeyFrames
                            VectorAnimationBase              // Vector类型的值的动画
                                VectorAnimation
                                VectorAnimationUsingKeyFrames

 

标签:动画,插值,数据类型,学习,类型,WPF,属性
From: https://www.cnblogs.com/raynado/p/16731650.html

相关文章

  • Jmeter学习笔记
    安装部署直接去官网下载最新版jmeter,解压到任意目录官网地址:https://jmeter.apache.org/download_jmeter.cgi安装JDK8+(这里不再介绍步骤)配置jmeter环境变量可以在运......
  • Java学习秘诀
    为互联网新手,选择行业时一定要慎重。如果你想选择编程类的技术工作,可以先从Java了解~那么,Java语言现如今在IT行业内的发展前景如何?现在,很多企业都要和互联网接轨,全面推......
  • PCIE背景知识学习(2)
    PCIE背景知识学习(2)PCI中断处理(PCIInterruptHandling)PCI设备使用4个边带信号(sideband)作为中断信号,分别为INTA#、INTB#、INTC#、INTD#,并从中选取一个来向系统发送中断......
  • PCIE背景知识学习(3)
    PCIE背景知识学习(3)PCI-X特性(PCI-XFeatures)拆分事务模型(Split-TransactionModel)在传统的PCI读事务中,总线Master向总线上某个设备发起读取。如前面的内容所述,若Target......
  • Java学习路线总结,搬砖工逆袭Java架构师
    1.java类加载器架构2.JVM架构3.Java技术体系4.线程运行架构5.Java体系(编译与运行)结构6.JMS技术架构7.JMX技术架构8.Spring架构9.Hibe......
  • TypeScript学习笔记(三)—— 编译选项、声明文件
    一、编译选项与配置文件自动编译文件编译文件时,使用-w指令后,TS编译器会自动监视文件的变化,并在文件发生变化时对文件进行重新编译。示例:tscxxx.ts-w......
  • R语言学习丨散点图怎么画?绘图基本知识与常用函数
    今天笔记的内容是R语言中散点图绘制方法,用到了plot(普通散点图)、pairs(散点图矩阵)函数。散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变......
  • 自然语言处理NLP(学习笔记)
       NLP的概念自然语言处理,英文NaturalLanguageProcessing,简写NLP。NLP这个概念本身过于庞大,可以把它分成“自然语言”和“处理”两部分。自然语言先来看......
  • 线段树学习笔记(基础&进阶)(一) | P3372 【模板】线段树 1 题解
    什么是线段树线段树是一棵二叉树,每个结点存储需维护的信息,一般用于处理区间最值、区间和等问题。线段树的用处对编号连续的一些点进行修改或者统计操作,修改和统计的复杂......
  • 简单记录-react学习,用函数式组件写井字棋
    React官方给定的教程,井字棋(tic-tac-toe),是使用class组件制作的,但是函数式组件才是未来,所以初学者的我用函数式组件重写一遍,简单记录一下。官方教程链接importReact,{u......