Expression Blend实例中文教程(7)

通过前面文章学习,已经对Blend的开发界面,以及控件有了初步的认识。本文将讲述Blend的一个核 心功能,动画设计。大家也许注意到,从开篇到现在,所有的文章都是属于快速入门,是因为这些文章, 都是我曾经学习的经验和工作中使用到的经验总结出来的。在我个人认为,掌握了这些核心功能也就等于 掌握了Blend的开发方法。在以后开发项目中使用Blend开发工具,这些知识应该足够用了。当然,特殊项 目也需要特殊对待,如果您在项目开发中,有新的Blend开发经验,希望您能够毫不吝啬的分享,在这里 ,我表示深深的谢意。

言归正传,关于Silverlight的动画设计。在讲述Blend设计Silverlight动画之前,我想介绍一些动画 设计基础知识。

学习Silverlight动画之前,首先需要明确一下三点核心概念:

1. Silverlight动画是基于时间线的; 开发人员可以设置初始状态,结束状态和动画时间段, Silverlight会自动计算生成动画效果。

2. Silverlight动画是对象属性的修改过程; 例如,一个按钮动画,用户点击后,按钮会自动增大, 其动画原理,就是对按钮的宽度和高度在一定时间段中进行改变置,即生成动画效果。

3. Silverlight动画中,不同的数据类型,需要使用不同的动画类; 这和编程中的类型匹配很相似, 假如要在动画中实现修改控件宽度或者高度,则需要使用DoubleAnimation类。动画实现控件背景色,则 需要使用ColorAnimation类

在以上三点核心概念下,我们将列举一些基础概念,对其进行解释,

首先要明白Silverlight动画类型,在Silverlight的动画设计中,动画类型被分为两类,分别是: From/To/By 动画和关键帧动画。 还有一些专业开发人士称这两个类型为线性插值动画(Linear Interpolation)和关键帧动画(Key-frame Animation)。

1. From/To/By 动画,也称为线性插值动画(Linear Interpolation),是Silverlight类型中最简单 的一种动画。开发人员只需要设置动画开始值(From),动画终止值(To)和动画相对改变值(By),即可 实现Silverlight动画效果。从字面意思可以理解From,To和By,From是设置动画在时间线中的开始位置 ,To是设置动画在时间线中的结束位置,而By和To类似,但是比To更灵活一些,设置By,不用关心具体属 性数值改变,也不用关心动画具体经历的时长。该动画类型,只是三种动画数据类型类,分别是: DoubleAnimation,ColorAnimation和PointAnimation。这三种数据类型类,分别用于 Double数据类型, Color数据类型和Point数据类型。其中DoubleAnimation类是最为常用的一种。例如,修改对象的高度和 宽度,就是不错的例子。我们经常会在项目代码中看到:

1 <DoubleAnimation From="20" To="100"  Duration="0:0:5"></DoubleAnimation>

这是一个指定对象的属性值在5秒内从20到100改变的动画,也是最简单的动画语句。这里我们忽略了 目标对象属性,后文将有详细代码,这里仅做演示。

2. 关键帧动画(Key-frame Animation),相比线性插值动画(Linear Interpolation)要更加灵活 和强大。在关键帧动画中,可以不用指定具体的开始点和结束点,仅需要设置关键帧和相关动画控制方法 ,Silverlight将自动生成动画效果。这个动画类型,有两个重要概念,关键帧和动画控制方法。

关键帧可以理解为对象属性值,每设置一个关键帧,也就是修改一次对象属性值。

动画控制方法,也可以理解为动画过渡效果,是指从某一个关键帧开始过渡到下一个关键帧的动画效 果。默认微软提供三种动画控制方法:线性(Linear),离散(Discrete)和样条(Spline)。为了能够 让读者快速入门动画概念,这里我暂时不细述以上三种动画控制方法,将在后文使用单独篇幅进行描述。

关键帧动画,也有相关动画数据类型类,分别是 DoubleAnimationUsingKeyFrames, ColorAnimationUsingKeyFrames,PointAnimationUsingKeyFrames 和ObjectAnimationUsingKeyFrames。 其中前三个数据类型类用法和 DoubleAnimation,ColorAnimation和PointAnimation相同,而 ObjectAnimationUsingKeyFrames是关键帧动画特有的数据类型类,可以替代任意数据类型,例如,假如 想实现一个控件的可见性动画效果,我们需要控制该控件的Visibility属性,而该属性不属于Double, Color和Point任一类型,这里便可以使用 ObjectAnimationUsingKeyFrames。在后文,会有实例进行说明 。

在了解了Silverlight动画类型后,另外一个重要的基础概念是StoryBoard。

StoryBoard是管理时间线的类,开发人员可以使用该类管理和控制多个动画进程。例如,控制动画的 播放,暂停,停止或者改变动画位置等功能,不仅如此,通过StoryBoard还可以为动画指定控件和控件属 性。在Blend中,微软内置了一个 StoryBoard时间线编辑器,设计人员和开发人员可以脱离代码使用视图 方式方便的设计动画效果。本系列着重介绍Blend应用,所以,后文将详细介绍StoryBoard在Blend中的设 计方法。

时间: 2024-10-14 23:01:47

Expression Blend实例中文教程(7)的相关文章

Expression Blend实例中文教程-目录

Expression Blend实例中文教程(13) - 控件模板快速入门ControlTe Expression Blend实例中文教程(12)-样式和模板快速入门Style,Tem Expression Blend实例中文教程(11) Expression Blend实例中文教程(10) - 缓冲动画快速入门Easing Expression Blend实例中文教程(9) - 行为快速入门Behaviors Expression Blend实例中文教程(8) - 动画设计快速入门StoryB

Expression Blend实例中文教程(11)

Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM) Visual State Manager,中文又称视觉状态管理器(简称为VSM),是Silverlight 2中引进的一个概念 .通过使用VSM,开发人员和设计人员可以轻松的改变项目控件的视觉效果,在项目中VSM主要用于创建自 定义控件以及控件模板.为了能够打造个性绚丽的Silverlight项目,学习掌握VSM是非常必要的.本文将 介绍VSM的快速入门知识以及VSM在

Expression Blend实例中文教程(5)

Expression Blend实例中文教程(5) - 布局控件快速入门StackPanel,ScrollViewer和Border 上一篇,介绍了Canvas布局控件在Blend中的使用.本篇继续介绍布局控件StackPanel,ScrollViewer 和Border. 相对于Grid和Canvas来说,StackPanel,ScrollViewer和Border是比较简单的布局控件,实现的功能相 对来说单一. 首先来说说StackPanel控件.从字面意思理解,是堆栈面板的意思.堆栈内的所

Expression Blend实例中文教程(9)

在Blend强大的设计功能支持下,设计人员和开发人员可以无代码实现Silverlight/WPF动画效果,例 如上文介绍的 StoryBoard,就是一个典型例子,设计人员和开发人员仅需提供必要元素,即可实现简单 动画.通常来说,在一个项目中会经常出现重复的动画或者相似的动画,如果每次都创建一个新的 StoryBoard,这样显着项目代码十分臃肿,而且有时还会影响项目运行效率.另外在多个项目中都会用到 一个相同的动画效果,如果能把这个动画效果编译成通用类提供调用,也就可以达到事半功倍的效果.为

Expression Blend实例中文教程(1)

随着计算机软件开发分工细节化,微软对已有的产品线进行了调整,在保持原有经典开发工具Visual Studio基础上,又推出了一套新的设计开发工具系列,Expression Studio. Expression Studio设计工 具系列包含四项主要产品: Expression Blend Expression Blend(下称Blend),是一款用于设计桌面和Web应用用户界面的可视化工具. 用户可以通过拖拉控件方式创建用户交互界面:另外Blend中,包含一款软件原型建模工具SketchFlow

Expression Blend实例中文教程(12)-样式和模板快速入门Style,Template

在上一篇,介绍了Visual State Manager视觉状态管理器,其中涉及到控件的样式(Style)和模板( Template),本篇将详细介绍样式(Style)和模板(Template)在Silverlight项目中的应用,并介绍如 何使用Blend设计样式(Style)和模板(Template). 在LOB(Line-of-Business)企业级应用项目开发中,为了使项目的视觉效果多样化,不仅仅使用动画 效果,而且经常还需要修改部分控件的样式(Style)和模板(Template).

Expression Blend实例中文教程(2)

上一篇主要介绍Expression系列产品,另外概述了Blend的强大功能,本篇将用Blend 3创建一个新 Silverlight项目,通过创建的过程,对Blend进行快速入门学习. 在开始使用Blend前,首先需要进行Silverlight的开发环境搭建. Silverlight开发环境搭建成功后,我们将通过实例介绍Blend入门操作,我使用的Blend是英文版本, 我将对照翻译成中文. 首先使用Blend按照以下步骤创建一个新的Silverlight项目, 1. 点击左上角的"File -

一起谈.NET技术,Expression Blend实例中文教程(2) - 界面快速入门

上一篇主要介绍Expression系列产品,另外概述了Blend的强大功能,本篇将用Blend 3创建一个新Silverlight项目,通过创建的过程,对Blend进行快速入门学习. 在开始使用Blend前,首先需要进行Silverlight的开发环境搭建,在银光中国网(SilverlightChina.Net)有篇"轻松建立Silverlight开发环境",其中列出了建立Silverlight开发环境的几个步骤,另外,我在过去发布过一篇"Silverlight开发工具集合&

Expression Blend实例中文教程(13)

上篇,介绍了控件样式(Style)和模板(Template)的基础概念,并且演示了使用Blend设计控件样 式.本篇将继续介绍使用Blend设计自定义控件模板 - ControlTemplate.ControlTemplate可以称为控件 模板,简单的理解为控件结构和行为的集合.在项目设计中,经常会使用ControlTemplate创建新的控件 模板或者修改现成的控件模板,使用项目的UI具有独特性.如何使用Blend创建和修改ControlTemplate是 本文即将讨论的话题. 概述 对于Co

Expression Blend实例中文教程(10)

随着Rich Internet application(RIA)应用技术的发展,各个公司越来越注重于项目的用户体验性 ,在保证其功能完善,运行稳定的基础上,绚丽的UI和人性化的操作设计会给用户带来舒适的体验效果. 前文我们学习了Blend设计简单的动画,可以使用StoryBoard快速创建一个动画效果,但是该动画效果看 起来缺乏自然效果,让用户感觉太过机械化,大大的降低了用户体验性.为了是动画更为人性化,看起来 更自然化,我们可以通过以下两个方式来解决: 方法1. 使用前文所提及的,帧动画技术,