合成动画

Windows.UI.Composition API 允许你在统一的 API 层中创建、设置动画、转换和操作合成器对象。 合成动画提供一种在应用程序 UI 中运行动画的强大且有效的方法。 它们从一开始就设计为确保你的动画可以独立于 UI 线程并以 60 FPS 的频率运行,并让你不仅可以使用时间,而且还可以使用输入和其他属性来灵活生成令人惊叹的体验以驱动动画。

Windows 中的动作

想一想电影中的动作设计。 动作的无缝过渡让你能够专注于故事,为你带来真实体验。 我们可以将这种感觉融入我们的设计,引导人们在观影过程中能够轻松从一个任务跳转到另一个任务。 动作通常是一项用来区分用户界面和用户体验的因素。

作为 Windows UI 平台的基本构建基块,CompositionAnimations 提供一种强大而有效的方法,可在应用程序的 UI 中创建动作体验。 动画引擎从零开始设计,确保动作独立于 UI 线程,以 60 FPS 运行。 这些动画旨在提供基于时间、输入和其他属性生成创新动作体验的灵活性。

动作示例

下面是应用中的一些动作示例。

在此,应用使用连贯动画来为一个正在“继续”变成下一页标题中一部分的项目图片创建动画。 该效果有助于在转换过程维持用户上下文。

An example of Connected Animation

在此,当 UI 滚动或平移时,视差视觉效果将以不同的速率移动不同的对象,打造一种深度、透视和移动感。

An example of parallax with a list and background image

使用 CompositionAnimations 创建动作

若要在 UI 中生成动作,开发人员可以访问 XAML 或可视化层中的动画。 可视化层中的动画为开发人员带来了一系列好处:

  • 性能:与传统的 UI 线程绑定动画不同,Windows UI 平台上的动画在独立线程上以 60 FPS 运行,可实现流畅的动作体验。
  • 模板化模型:Windows UI 层中的动画是模板,这意味着可以在多个对象上使用单个动画并调整属性或参数,而不必担心妨碍以前的动画使用。
  • 自定义项:Windows UI 层不仅可以轻松制作精美的 UI,而且具有各种动画类型,可以通过一系列自定义项创建令人惊叹的全新体验

作为在 Windows UI 层创建体验的开发人员,你可以访问各种动画概念,让设计变得栩栩如生。 你可以使用其中任何一个概念对任何 CompositionObject 的属性或子通道组件(如果适用)进行动画处理。

注意

并非 CompositionObject 的所有属性都能进行动画处理。 请参阅单个 CompositionObject 的文档,确定属性能否进行动画处理。

注意

术语“子通道”是指属性的组件形式。 例如,Vector3 Offset 属性的 X 或 XY 子通道。

动画概念 说明
使用 KeyFrameAnimations 的基于时间的动作 KeyFrameAnimations 用于直接控制一段时间内的整个动作体验。 开发人员以传统的关键帧方式描述动作的开始、结束、中间插值和持续时间。
使用 ExpressionAnimations 的相对动作 ExpressionAnimations 用于描述如何相对于一个对象的属性,驱动另一个对象的属性的动作。 开发人员可定义数学公式来定义基于引用的关系。
ImplicitAnimations 这些动画基于触发器,并且与核心应用逻辑分开定义。 ImplicitAnimations 用于描述作为对直接属性更改的响应,动画如何以及何时发生。
使用输入动画的输入驱动动作 输入动画涵盖一组场景,使开发人员能够通过触摸或其他输入形式描述基于操作的动作。 这些动画基于活动用户输入或手势进行驱动。
使用 NaturalMotionAnimations 的基于物理特性的动作 NaturalMotionAnimations 用于描述基于现实世界的力驱动动作的自然而熟悉的动作体验。 开发人员不定义时间,而是定义动作的特征(例如,弹簧的阻尼比)