wpf滑动动画_旋转平移矩阵

wpf滑动动画_旋转平移矩阵在WPF动画中常见的动画就平移、缩放以及旋转,一般会用到故事板(Storyboard)和浮点动画(DoubleAnimation),下面我们先对这两个进行具体的介绍,因为本次我们主要利用故事板来添加动画:一.Storyboard:俗称故事板,在VS中意思是,一个容器的时间线,该时间线为子动画提供对象和属性确定信息:其重要的两个方法`Storyboard.SetTarget();`绑定动画和`Storyboard.SetTargetProperty();`依赖的属性一般用法有:Storyboard

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

在WPF动画中常见的动画就平移、缩放以及旋转,一般会用到故事板(Storyboard)和浮点动画( DoubleAnimation),下面我们先对这两个进行具体的介绍,因为本次我们主要利用故事板来添加动画:

一.Storyboard:俗称故事板,在VS中意思是,一个容器的时间线,该时间线为子动画提供对象和属性确定信息:

其重要的两个方法`Storyboard.SetTarget();`绑定动画和`Storyboard.SetTargetProperty();`依赖的属性

一般用法有:

Storyboard sb = new Storyboard();//首先实例化一个故事板
Storyboard.SetTarget();//绑定动画为这个按钮执行的浮点动画
Storyboard.SetTargetProperty();//依赖的属性
sb.Begin();//开始动画
sb.Children.Add(***);//向故事板中添加动画
sb.Children.Remove(***);//移除指定的动画

Jetbrains全家桶1年46,售后保障稳定

当然在下面的逐步介绍中,我们还会用到故事板绑定动画,和依赖的属性

二.DoubleAnimation:浮点动画,在VS中的意思是,对插入的两个目标值之间的double属性值进行动画处理:

一般常用的属性运用:

1.先进行实例化;

2.设置动画的起始值和结束值;

3.设置动画是否进行循环播放;

4.设置播放时间;

5.设置是否可以进行反转;

下面是举例代码逐步实现:

DoubleAnimation doubleanimation = new DoubleAnimation();//先进行实例化
doubleanimation.Form=100;//设置起始值
doubleanimation.To=200;//设置结束值
doubleanimation.RepeatBehavior = RepeatBehavior.Forever;//设置动画循环播放
doubleanimation.AutoReverse = true;//设置可以进行反转
doubleanimation.Duration=new Duration(TimeSpan.FromSeconds(3));//设置动画播放时间

一.平移:

TranslateTransform:在二维x-y坐标系统内平移(移动)对象:

在故事板中依赖的属性为RenderTransform.X;就是沿X轴进行平移;
用法:

Button btn2 = new Button();
DoubleAnimation yd5 = new DoubleAnimation(100, 200, new Duration(TimeSpan.FromSeconds(3)));//浮点动画定义了开始值和起始值
            btn2.RenderTransform = new TranslateTransform();//在二维x-y坐标系统内平移(移动)对象
            yd5.RepeatBehavior = RepeatBehavior.Forever;//设置循环播放
            yd5.AutoReverse = true;//设置可以进行反转
            Storyboard.SetTarget(yd5, btn2);//绑定动画为这个按钮执行的浮点动画
            Storyboard.SetTargetProperty(yd5, new PropertyPath("RenderTransform.X"));//依赖的属性
            sb.Children.Add(yd5);//向故事板中加入此浮点动画
            sb.Begin();//播放此动画

二.旋转:

RotateTransform:在二维x-y坐标系统内围绕指定点顺时针旋转某个对象:

在故事板中依赖属性为:RenderTransform.Angle就是要进行旋转的角度;
用法:

Button btn3 = new Button();
            DoubleAnimation yd1 = new DoubleAnimation();//实例化浮点动画
            btn3.RenderTransform = new RotateTransform();//设置为旋转动画
            btn3.RenderTransformOrigin = new Point(0.5, 0.5);//设置旋转的中心
            yd1.From = 0;//动画的起始值
            yd1.To = 3600;//动画的结束值
            yd1.Duration = TimeSpan.FromSeconds(3);//动画的播放时间
            yd1.RepeatBehavior = RepeatBehavior.Forever;//设置动画循环播放
            yd1.AutoReverse = true;//设置动画可以进行反转
            Storyboard.SetTarget(yd1, btn3);//给故事板绑定动画
            Storyboard.SetTargetProperty(yd1, new PropertyPath("RenderTransform.Angle"));//动画的依赖属性
            sb.Children.Add(yd1);//故事板添加动画
             sb.Begin();//播放动画

三.缩放:

ScaleTransform:在二维x-y坐标系统内缩放对象;

在故事板中依赖的属性为RenderTransform.ScaleX或RenderTransform.ScaleY,这要根据你要沿哪个轴进行缩放,X代表x轴,Y代表y轴;
用法:

Button btn1 = new Button();
 DoubleAnimation yd4 = new DoubleAnimation(1.0,0.5,new Duration(TimeSpan.FromSeconds(3)));//实例化浮点动画,分别包含了缩放的倍数和动画的时间
            btn1.RenderTransform = new ScaleTransform();//设置动画为缩放
            yd4.RepeatBehavior = RepeatBehavior.Forever;//设置循环播放
            yd4.AutoReverse = true;//设置可以反转
            btn1.RenderTransformOrigin = new Point(0.5,0.5);//设置缩放为中心点
            Storyboard.SetTarget(yd4,btn1);//绑定动画
            Storyboard.SetTargetProperty(yd4,new PropertyPath("RenderTransform.ScaleX"));//动画依赖的属性
            sb.Children.Add(yd4);//添加动画
            sb.Begin();//播放动画

四.颜色动画:

ColorAnimation:对插入的两个目标值之间的color属性值进行动画处理:
一般依赖的属性为:(控件名称.Background).(SolidColorBrush.Color)也就是设置了其背景色
用法:

Button btn4 = new Button();
ColorAnimation color = new ColorAnimation(Colors.Red,Colors.Blue,new Duration(TimeSpan.FromSeconds(0.05)));//实例化颜色动画
            color.RepeatBehavior = RepeatBehavior.Forever;//设置循环播放
            color.AutoReverse = true;//设置可以反转
            Storyboard.SetTarget(color, btn4);//绑定动画
            Storyboard.SetTargetProperty(color, new PropertyPath("(Button.Background).(SolidColorBrush.Color)"));//设置动画依赖的属性
            sb.Children.Add(color);//增加动画
            sb.Begin();//播放动画

另一篇文章对这几种动画也有具体的介绍,如果喜欢请进传送门

WPF中实现动画的几种效果(最基础方式)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198332.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java中的cas(this关键字java)

    在JDK5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不错的机制

    2022年4月14日
  • goland 永久激活码【最新永久激活】

    (goland 永久激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月2日
  • VS2013验证控件出现 WebForms UnobtrusiveValidationMode 必须“jquery”ScriptResour……错误的解决方案

    VS2013验证控件出现 WebForms UnobtrusiveValidationMode 必须“jquery”ScriptResour……错误的解决方案

    2022年1月14日
  • 数字证书原理,公钥私钥加密原理 – 因为这个太重要了[通俗易懂]

    文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出!1、基础知识这部分内容主要解释一些概念和术语,最好是先理解这…

    2022年4月11日
  • pycharm配置python运行环境_C中调用Python

    pycharm配置python运行环境_C中调用Python目录前言一、系统路径说明二、环境配置1.在VS中选择ReleaseX642.菜单栏中选择:项目->属性3.生成dll答疑python程序目录下没有Numpy路径?具体代码参考博客前言本文主要讲解在Python程序中调用C(C++)程序的方法。主要思路是:在VS中配置好环境后,将C语言程序打包生成动态库文件.dll。将.dll改名成.pyd之后,装入相应路径,在pycharm中直接import即可环境:win10Pycharm(python3.6)(64位)VS2017(社区版)

    2022年8月26日
  • 基于近邻的协同过滤算法「建议收藏」

    基于近邻的协同过滤算法「建议收藏」这节课我们来学习K近邻在推荐系统中的应用,你将完成本课程的第一个实战项目:基于KNN的电影推荐系统!为了使你能够顺利地完成实战内容,我们先了解一下推荐系统中的基础知识。基于近邻用户的协同过滤假定有一个场景:某个周日的下午,你感觉很无聊,然后从电脑上打开了一个视频网站,想看下最近有什么好看的电影。然而你发现网站上的热门电影基本都看过,其他的电影又太多,不知道该看什么。想使用搜索框去查一下,但是又不知道该搜什么关键词,这个时候你的内心很焦灼,总不能挨个去尝试吧,那时间成本也太大了…仔细想想还是有办法的,那

    2022年6月30日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号