《Programming WPF》翻译 第8章 1.动画基础

动画包括在一段时间内改变用户界面的某些可见的特征,如它的大小、位置或颜色。你可以做到这一 点,非常困难的通过创建一个timer并在每一个timer_tick句柄中修改用户界面的外观。当然,这是动画 在Win32或Windows Forms中典型的做法。幸运的是,WPF照顾到这些低级别的细节。动画,就像WPF中的其 他特征,简单的要求我们声明想要做的。系统会为我们照顾它的实现。

所有的WPF动画支持归结为,在一段时间内改变一个或多个属性。这意味着有很多限制在WPF动画系统 能为你做些什么上。例如,可视化树全部保持着同样的结构。一个动画不可能为你添加或移除元素(虽然 为动画设置属性使元素可见是可能的)。没有办法提供一个“before”和“after”的场景,或者使WPF在 这两者间添加新场景。这意味这没有一种自动的方法——做一个动画,从一种外观转换到另一种,其程度 足以使某个元素从起始位置滑动到终止位置。

了解什么动画可以或不可以实现的关键是,理解它的聚焦属性的天性。它只是改变了你通知的无论任 何属性。当决定任何给一个UI设计动画时,问一下自己你想要确切地看到什么——经由动画的中途,以及 计算出如何设置需要的属性——从而可以捕获中途的点。如果你把这应用到动画进程:从一个水平的 StackPanel转换为垂直的,这明显会有一个问题。你不能在StackPanel上设置一个属性,使得它在水平布 局和垂直布局的中途显示什么。如果你不能这么做,那么动画系统也不能!(如果你想达到这种类型的效 果,你可以使用Canvas,它允许在任意位置放置的元素。你可能需要手动的为每个元素设置动画中的位置 和大小。)

在我们详细看到动画的任意部分之前,让我们检查一个简单的例子。示例8-1显示了包含一个单独的红 色椭圆的窗体标记。这个椭圆元素的Height被设置为100,但是他没有直接声明一个Width属性。替代的, Width属性由一个动画决定。椭圆会在一段时间内改变它的宽度。

示例8-1

<Window Text="Simple Animation" Width="320" Height="150"
xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
xmlns="http://schemas.microsoft.com/winfx/avalon/2005">

<Window.Storyboards>
<SetterTimeline TargetName="myEllipse" Path="(Ellipse.Width)">
<DoubleAnimation From="10" To="300" Duration="0:0:5"
RepeatBehavior="Forever" />
</SetterTimeline>
</Window.Storyboards>

<Ellipse x:Name="myEllipse" Fill="Red" Height="100" />

</Window>

时间: 2024-09-30 17:03:14

《Programming WPF》翻译 第8章 1.动画基础的相关文章

《Programming WPF》翻译 第9章 1.自定义控件基础

在写一个自定义控件之前,你需要问的第一个问题是,我真的需要一个自定义控件吗?一个写自定义 控件的主要原因是为了用户界面技术专家可以修改控件的外观,但是正如我们在前些章看到的,内容模型 和模板意味着这通常是不必要的.WPF提供了一个先进的按照规模的定制技术,你应该记住这些--当考 虑写一个自定义控件时. 使用属性修改一个已有控件的外观 组合已有的一些控件 将内容嵌入已有控件 使用模板代替一个已有控件 创建一个自定义控件或其他自定义元素 这个顺序提供了渐增的能力级别,以每一级别上轻微的额外成效为交换

《Programming WPF》翻译 第7章 1.图形基础

WPF使得在你的应用程序中使用图形很容易,以及更容易开发你的显卡的能力 .这有很多图形构架的方面来达到这个目标.其中最重要的是综合. 7.1.1综合 图形化元素可以组合到你的用户界面的任何一部分中.很多GUI技术易于将图 形分离到一个独立的世界.这就需要一个"操纵杆"--当移动一个世界的按钮 .文本框和其它框架到另一个世界的Shape和图像中,由于在很多系统中,这两 个世界有不同的编程模型. 例如,Windows Forms和Mac OS的Cocoa都提供了在窗体中排列控件的能力, 以

《Programming WPF》翻译 目录

原文:<Programming WPF>翻译 目录 注:第1.2章我只做了笔记,没有翻译,请大家阅读时注意. 还有就是,这本书的英文版本下载:[O'Reilly] Programming Windows Presentation Foundation (2005) - BBL 以下是这本书的目录: 1.Hello, WPF     1.1 WPF from Scratch 基础     1.2 Navigation 导航     1.3 属性元素     1.4 布局     1.6 数据绑定

《HTML5+JavaScript动画基础》——第2章 动画的JavaScript基础 2.1动画基础

第2章 动画的JavaScript基础 如果说第1章是在原理上对动画的概述,那么本章将从技术角度概述如何创建HTML5文件以及如何用canvas元素和JavaScript实现动画.本章将介绍HTML5文件结构的要点.动画循环.JavaScript对象以及用户交互的相关内容.本章所学的技巧将贯穿本书的始终. 2.1 动画基础 在开始本章的介绍之前,先回顾下第1章的内容: 动画由帧组成,每一帧在表现运动的假象上有细微差别: 逐帧动画包含每一帧的图像或图像描述: 动态动画包含一幅图片的起始描述以及后续

《HTML5+JavaScript动画基础》——第1章 动画的基本概念 1.1动画

第一部分 JavaScript动画基础 第1章 动画的基本概念 看看Web浏览器已经发展到何种程度!最初Web浏览器仅仅是一个用于在网络上访问文本文件的程序,很快它就彻底改变了我们沟通与分享信息的方式,现在它已经演变成一个完全图形化的交互式编程环境.HTML5作为网页标记语言的最新标准加入了大量原本只存在于本地应用中的图形功能.经过短暂的停滞,得益于HTML5和JavaScript技术引发的新一轮的竞争与创新,现在的Web浏览器发展迅速.新的canvas元素提供了一种创建标准化的游戏.应用与动画

《Linux C编程从入门到精通》一第1章 Linux基础1.1 Linux的起源、发展和分类

第1章 Linux基础 Linux C编程从入门到精通 Linux是一套免费使用和自由传播的类UNIX操作系统,它已发展成为现今世界上最流行的一种操作系统.Linux不仅仅能在PC机上运行,随着嵌入式系统的发展,它已经被广泛地应用于各种场合. 1.1 Linux的起源.发展和分类 Linux C编程从入门到精通 Linux从1991年问世到现在已经有20多年的历史,它从一个架构简单的系统内核发展到了现在结构完整.功能丰富的多版本操作系统,本小节将介绍其起源发展和分类. 1.1.1 Linux的起

《HTML5+JavaScript动画基础》——导读

前言 本书介绍了如何借助计算机代码和数学知识在Web上创建交互式的动画.你无须为记不清高中代数课的内容而感到担心,你只需有对它们稍微有一些了解就可以开始本书的学习.本书并不是为了让你记住各种数学公式和理论,而是教给你一些可以用于实现和表达创意的工具.虽然在此过程我们也会介绍一些根本性的原理,但是更加重要的是,告诉你如何将技术实际运用到你的工作中.你将看到各种概念和公式如何在你面前即时地发挥作用.尝试将本书想象成各种运动元素,或包含各种创意组合.竞赛与引用的目录. 本书中会出现大量可供学习的示例,

《jQuery Cookbook中文版》——第1章 jQuery基础1.0 导言

第1章 jQuery基础 1.0 导言 既然你已经选择了一本有关jQuery的"食谱",本书作者基本就可以假定你对jQuery的定义和功能有了大致的认识.坦白说,"食谱"通常是为寻求加强已有知识基础的读者所编写的.因此,本书使用了问题-解决方案-讨论的编排方式,快速地介绍常见问题的解决方案.但是,如果你是一位jQuery新手,不要把本书抛诸脑后,认为第1章是老生常谈,这一章就是专为新手所写的. 如果你需要复习,或者只有很少或者完全没有jQuery的知识,第1章将帮助

Android过场动画基础教程

Tween(补间)动画基础 在讨论系统动画之前,我们先复习一下Tween动画,也就是俗称的补间动画的基础. 补间动画的类型和属性 补间动画有4种类型: Alpha: 淡入淡出,改变透明度 Scale: 大小缩放 Translate: 位移变化 Rotate:旋转 Translate动画的属性 android:fromXDelta:X轴的起始坐标 android:toXDelta:X轴的结束坐标 android:fromYDelta:Y轴的起始坐标 android:toYDelta:Y轴的结束坐标