参考网址:https://blog.csdn.net/qq_45096273/article/details/106256397

在动画之前我们先了解一下几个声明式动画中常用的元素:

一.Storyboard:故事板,是BeginAnimation()方法的XAML等价物,通过故事板将动画指定到合适的元素和属性,故事板是增强的时间线,可以用来分组多个动画,Storyboard类提供的最基本的功能是使用TargetName和TargetProperty属性指向某个特定的元素和属性;

二.DoubleAnimation:线性类插入两个目标值之间的**double**属性值进行处理,也就是线性插入;

1.TranslateTransform:实现动画的平移效果;

//动画平移

Storyboard sb = new Storyboard();//实例化一个故事版

first.RenderTransform = new TranslateTransform(0, 0);//设置转换元素的位置息

DoubleAnimation yun = new DoubleAnimation();//实例化double对动画值的理

yun.By = 50;//动画改变值的范围

yun.RepeatBehavior = RepeatBehavior.Forever;//设置无限次播放动画

yun.Duration = TimeSpan.FromMilliseconds(5000);//设置动画时间

yun.AutoReverse = true;//设置可以反转

Storyboard.SetTarget(yun, first);//绑定动画

Storyboard.SetTargetProperty(yun, new PropertyPath("Width"));//动画依赖的性

sb.Children.Add(yun);//添加动画

sb.Begin();//播放动画

XMl 代码

2.RotateTransform:实现动画的旋转效果

  //动画旋转
  var sun = new DoubleAnimation()//声明一个动画对象
  {
    From = 0,//动画初始角度
    To = 1800,//动画的结束值
    Duration = new Duration(TimeSpan.Parse("0:0:10"))//设置动画花费的时间
  };
  sun.RepeatBehavior = RepeatBehavior.Forever;//设置动画无限次播放
  taiyang.BeginAnimation(RotateTransform.AngleProperty, sun);//添加动画

XAML代码:

<Image RenderTransformOrigin="0.445,0.526" Height="100" Canvas.Right="10" Canvas.Top="-16" Width="100" Source="太阳.png" Canvas.Left="0">
  <Image.RenderTransform>
    <RotateTransform Angle="0" x:Name="taiyang">//angle为角度值
    </RotateTransform>
  </Image.RenderTransform>
</Image>

3.动画远近实现,改变其的宽度:

  //动画远近实现
  DoubleAnimation tree = new DoubleAnimation();//实例化线性对动画的处理
  tree.From = xin.ActualHeight;//动画的起始值
  tree.To = xin.ActualHeight - 50;//动画的结束值
  tree.RepeatBehavior = RepeatBehavior.Forever;//动画无限播放次数
  tree.Duration = TimeSpan.FromSeconds(5);//动画播放的时间
  tree.AutoReverse = true;//动画的反转
  xin.BeginAnimation(Image.HeightProperty, tree);//添加动画

xml代码

  <Image RenderTransformOrigin="0.5,0.5" Name="xin" Height="100" Canvas.Left="345" Canvas.Top="225" Width="100" Source="心.png">//Source指向图片
  </Image>

效果图:(远近实现之前与之后)

4.ScaleTransform:动画的缩放

<Image Name="shu" Height="239" Canvas.Top="122" Width="173" Source="大树.png" Canvas.Left="-31">
  <Image.RenderTransform>
    <ScaleTransform ScaleX="1.5" ScaleY="1.5" >//ScaleX:为X轴的缩放,ScaleY:为Y轴的缩放
    </ScaleTransform>
  </Image.RenderTransform>
</Image>

效果图:(缩放实现之前与之后)

WPF中实现动画的几种效果(最基础方式)的更多相关文章

  1. WPF中的动画

    动画无疑是WPF中最吸引人的特色之一,其可以像Flash一样平滑地播放并与程序逻辑进行很好的交互.这里我们讨论一下故事板. 在WPF中我们采用Storyboard(故事板)的方式来编写动画,为了对St ...

  2. 【WPF学习笔记】[转]周银辉之WPF中的动画 && 晓风影天之wpf动画——new PropertyPath属性链

    (一)WPF中的动画 动画无疑是WPF中最吸引人的特色之一,其可以像Flash一样平滑地播放并与程序逻辑进行很好的交互.这里我们讨论一下故事板. 在WPF中我们采用Storyboard(故事板)的方式 ...

  3. [转]WPF中的动画

    WPF中的动画                                                                                  周银辉 动画无疑是WP ...

  4. WPF中的动画——(三)时间线(TimeLine)

    WPF中的动画——(三)时间线(TimeLine) 时间线(TimeLine)表示时间段. 它提供的属性可以让控制该时间段的长度.开始时间.重复次数.该时间段内时间进度的快慢等等.在WPF中内置了如下 ...

  5. 在WPF中使用PlaneProjection模拟动态3D效果

    原文:在WPF中使用PlaneProjection模拟动态3D效果 虽然在WPF中也集成了3D呈现的功能,在简单的3D应用中,有时候并不需要真实光影的3D场景.毕竟使用3D引擎会消耗很多资源,有时候使 ...

  6. WPF中,如何将Vista Aero效果扩展到整个窗口

    原文:WPF中,如何将Vista Aero效果扩展到整个窗口   WPF中,如何将Vista Aero效果扩展到整个窗口                                         ...

  7. (转载)WPF中的动画——(一)基本概念

    http://www.cnblogs.com/TianFang/p/4050845.html WPF的一个特点就是支持动画,我们可以非常容易的实现漂亮大方的界面.首先,我们来复习一下动画的基本概念.计 ...

  8. WPF中的动画——(一)基本概念

    WPF的一个特点就是支持动画,我们可以非常容易的实现漂亮大方的界面.首先,我们来复习一下动画的基本概念.计算机中的动画一般是定格动画,也称之为逐帧动画,它通过每帧不同的图像连续播放,从而欺骗眼和脑产生 ...

  9. WPF中的动画——(五)关键帧动画

    与 From/To/By 动画类似,关键帧动画以也可以以动画形式显示目标属性值. 和From/To/By 动画不同的是, From/To/By 动画只能控制在两个状态之间变化,而关键帧动画则可以在多个 ...

随机推荐

  1. 华为交换机5855设置ssh

    配置思路 配置交换机密钥对 #生成RSA密钥对 设置vty登陆用户界面的认证方式为AAA认证 #设置远程认证方式 设置aaa用户信息 #本地用户名和密码 #本地用户服务类型 #本地用户授权等级 设置s ...

  2. 电脑通过WIFI连接手机ADB

    1.搜索adb wifi 2.安装并开启:根据提示 3.电脑:adb connect 192.168.1.134 a安装ADB TOOLS b安装ADB DRIVER c将ADB TOOLS复制到c: ...

  3. LeetCode 780. Reaching Points

    题目链接:https://leetcode.com/problems/reaching-points/ 题意:给定操作可以使点(x,y)变为点(x+y,y)或者点(x,x+y).现已知初始点(sx,s ...

  4. 【有奖互动】HMS Core. Sparkle游戏应用创新沙龙,诚邀您参与

    活动简介 随着互联网基础设施的完善和"宅经济"效应凸显,游戏行业逆势上扬,迎来巨大消费市场.同时,用户需求愈加多样化,如何进一步创新和技术升级.提升核心竞争力已成为游戏开发与运营的 ...

  5. windows程序快速启动的方式:WIN键+R

    WIN键+R是windows快速启动程序的一种方式,一般能独立运行的程序都能以这种方式启动.如notepad.calc.explorer等程序. 在命令行方式下explorer加上不同的参数,会得到不 ...

  6. UnitTest 用法

    功能 1.能组织多个用例去执行 2.提供丰富的断言方法 3.提供丰富的日志与测试结果 核心要素 1.TestCase 2.TestSuite 3.TextTestRunner 4.Fixture 用法 ...

  7. 第九篇 -- 可以上网,连WIFI弹出网页

    最近在调试WIFI模块时,程序路径没走对,导致运行了其他的函数,修改了配置文件,之后每次连接WIFI时都会弹出网页,并且明明可以上网,下面电脑符号那儿还会出现黄标,甚是心烦.上网搜索一番,终是解决了. ...

  8. python中进程详解

    1:pdb调试:基于命令行的调试工具,非常类似gnu和gdb调试,以下是常用的调试命令: 可以python -m pdb xxx.py(你的py文件名)进入命令行调试模式 命令 简写命令 作用 bea ...

  9. maven 与profile,resources,properties 关系

    top 的 pom.xml 看<profiles>的标签 <profiles> <!--dat环境--> <profile> <id>DAT ...

  10. C#曲线分析平台的制作(五,Sqldependency+Signalr+windows 服务 学习资料总结)

    在前篇博客中,利用interval()函数,进行ajax轮询初步的实现的对数据的实时显示.但是在工业级别实时显示中,这并非是一种最好的解决方案.随着Html5 websocket的发展,这种全双工的通 ...