通过


合成动画

使用 Microsoft.UI.Composition API,可以在统一 API 层中创建、创建、动画、转换和操作合成器对象。 合成动画提供了在 WinUI 应用 UI 中运行动画的强大高效方法。 它们从头开始设计,以确保动画在独立于 UI 线程的 60 FPS 下运行,并让你灵活地使用时间、输入和其他属性生成惊人的体验来驱动动画。

Windows 中的动态

像电影一样思考动作设计。 无缝过渡使你专注于故事,并带来生活体验。 我们可以将这种感觉融入到我们的设计中,引导人们以电影般的流畅感轻松地从一个任务过渡到下一个任务。 动作通常是用户界面和用户体验之间的区分因素。

作为 Windows UI 平台的基本构建基块,CompositionAnimations 提供了一种强大且高效的方法来在应用程序的 UI 中创建运动体验。 动画引擎已从头开始设计,以确保运动以 60 FPS 的速度运行,与 UI 线程无关。 这些动画旨在提供基于时间、输入和其他属性构建创新运动体验的灵活性。

动作示例

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

在这里,应用使用连贯动画将项目图像动画化,使其在“继续”过程中成为下一页标题的一部分。 效果有助于在过渡期间维护用户上下文。

连接的动画示例

在这里,当 UI 滚动或平移以创建深度、透视和移动的感觉时,视觉视差效果以不同的速率移动不同的对象。

一个带有列表和背景图像的视差示例

使用 CompositionAnimations 创建动画

若要在 UI 中生成动作,开发人员可以在 XAML 或视觉层中访问动画。 视觉层中的动画为开发人员提供了一系列优势:

  • 性能 - Windows UI 平台上的动画在 60 FPS 的独立线程上运行,从而实现流畅的运动体验,而不是传统的 UI 线程绑定动画。
  • 模板化模型 – Windows UI 层中的动画是模板,这意味着可以在多个对象上使用单个动画,并调整属性或参数,而不必担心阻碍以前的使用。
  • 自定义 – Windows UI 层不仅使美观的 UI 设计变得简单,而且支持各种动画类型,通过各种定制选择,可以创造出新的和令人惊叹的体验。

作为在 Windows UI 层创建体验的开发人员,你可以访问各种动画概念,使你的设计成为现实。 可以使用上述任何概念对任何 CompositionObject 的属性或子通道组件(如果适用)进行动画处理。

注释

并非 CompositionObject 的所有属性都是可动画的。 请参阅单个 CompositionObject 的文档,以确定属性是否具有动画效果。

注释

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

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