博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
背水一战 Windows 10 (14) - 动画: 线性动画, 关键帧动画
阅读量:6692 次
发布时间:2019-06-25

本文共 4565 字,大约阅读时间需要 15 分钟。

原文:

背水一战 Windows 10 (14) - 动画: 线性动画, 关键帧动画

作者:
介绍
背水一战 Windows 10 之 动画

  • 线性动画 - ColorAnimation, DoubleAnimation, PointAnimation
  • 关键帧动画 - ColorAnimationUsingKeyFrames, DoubleAnimationUsingKeyFrames, PointAnimationUsingKeyFrames, ObjectAnimationUsingKeyFrames

示例
1、演示线性动画的应用
Animation/LinearAnimation.xaml

Animation/LinearAnimation.xaml.cs

/* * 本例用于演示如何通过 Storyboard 使用线性动画,线性动画一共有 3 种类型:ColorAnimation, DoubleAnimation, PointAnimation, 它们均继承自 Timeline */using System;using Windows.UI;using Windows.UI.Xaml;using Windows.UI.Xaml.Controls;using Windows.UI.Xaml.Media;using Windows.UI.Xaml.Media.Animation;namespace Windows10.Animation{    public sealed partial class LinearAnimation : Page    {        public LinearAnimation()        {            this.InitializeComponent();            this.Loaded += LinearAnimation_Loaded;        }        private void LinearAnimation_Loaded(object sender, RoutedEventArgs e)        {            // 启动动画            storyboardPoint.Begin();            // 停止动画            // storyboardPoint.Stop();            // 用于演示如何在 CodeBehind 端定义 Storyboard            // 定义一个 ColorAnimation            ColorAnimation ca = new ColorAnimation();            ca.BeginTime = TimeSpan.Zero;            ca.From = Colors.Red;            ca.To = Colors.Yellow;            ca.Duration = TimeSpan.FromSeconds(3);            ca.AutoReverse = true;            ca.RepeatBehavior = new RepeatBehavior(3);            Storyboard.SetTarget(ca, ellipse2);            Storyboard.SetTargetProperty(ca, "(Fill).(Color)");            // 定义一个 DoubleAnimation            DoubleAnimation da = new DoubleAnimation()            {                To = 0.9,                Duration = TimeSpan.FromSeconds(1),                AutoReverse = true,                RepeatBehavior = RepeatBehavior.Forever            };            Storyboard.SetTarget(da, ellipse2);            Storyboard.SetTargetProperty(da, "(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)");            // 注:要用 Storyboard 控制 ScaleTransform 则必须先为元素声明好 ScaleTransform(否则运行时会报错)            TransformGroup Group = new TransformGroup();            Group.Children.Add(new ScaleTransform());            ellipse2.RenderTransform = Group;            // 将定义好的动画添加进 Storyboard 然后启动动画            Storyboard sb = new Storyboard();            sb.Children.Add(ca);            sb.Children.Add(da);            sb.Begin();            /*             * 注意:             * 1、在 WinRT 中为了流畅的体验,部分动画被优化成了“独立动画”,即动画不依赖于 UI 线程             * 2、但是也有一部分动画无法优化成“独立动画”,我们把这类动画称作“依赖动画”,其需要在 UI 线程上运行             * 3、通过将 EnableDependentAnimation 设置为 true(默认为 false),开启“依赖动画”             * 4、通过将 Timeline.AllowDependentAnimations 设置为 false(默认为 true),可以全局禁止开启“依赖动画”            */        }    }}

2、演示关键帧动画的应用
Animation/KeyFrameAnimation.xaml

OK

转载地址:http://cajoo.baihongyu.com/

你可能感兴趣的文章
oracle-------window安装
查看>>
I/O完成端口、异步I/O、APC和线程池(四)——线程池
查看>>
获取Java程序运行的路径 | 获取当前jar包的路径
查看>>
摆脱京城贵妇unittest的骚套路discover,自定义用例执行顺序。
查看>>
LaTeXila:Linux 的多语言 LaTeX 编辑器简介
查看>>
系统封装 ES3使用方法
查看>>
SVG.js 文本绘制整理
查看>>
哈佛结构 VS 冯*诺依曼结构
查看>>
java日志体系的思考(转)
查看>>
jQuery插件之validation插件
查看>>
C# 使用 NPOI 库读写 Excel 文件
查看>>
ncurses笔记(1)——ncurses库的介绍与安装
查看>>
Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2)(A.思维题,B.思维题)
查看>>
Vue.js动画在项目使用的两个示例
查看>>
新概念英语(1-a)句子集锦
查看>>
MyEclipse快捷键大全(绝对全)
查看>>
ASP.NET Core Web API处理HttpResponseMessage类型返回值的问题
查看>>
leetcode - Interleaving String
查看>>
进程加载与segment
查看>>
[android] 百度地图开发 (一).申请AK显示地图及解决显示空白网格问题
查看>>