QuaternionKeyFrameAnimation 类

定义

基于时间的动画,面向具有一个或多个关键帧的 Orientation 属性。

QuaternionKeyFrameAnimation 类是受支持的 KeyFrameAnimation类型之一,用于对 Visual上的 Orientation 属性进行动画处理。 四元数是一种有用的有时更简单的旋转方式 - 四元数采用角度之间的最短路径,并避免像 Gimbal Lock 这样的问题,即旋转角度/轴和旋转矩阵。 四元数由两个组成部分组成:标量和矢量部分。

public ref class QuaternionKeyFrameAnimation sealed : KeyFrameAnimation
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.LiftedContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class QuaternionKeyFrameAnimation final : KeyFrameAnimation
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
class QuaternionKeyFrameAnimation final : KeyFrameAnimation
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.LiftedContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class QuaternionKeyFrameAnimation : KeyFrameAnimation
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
public sealed class QuaternionKeyFrameAnimation : KeyFrameAnimation
Public NotInheritable Class QuaternionKeyFrameAnimation
Inherits KeyFrameAnimation
继承
Object Platform::Object IInspectable CompositionObject CompositionAnimation KeyFrameAnimation QuaternionKeyFrameAnimation
属性

示例

void QuaternionAnimation(SpriteVisual visual)
{
  // Create the QuaternionKeyFrameAnimation
  var quaternionKFA = _compositor.CreateQuaternionKeyFrameAnimation();

  // Create a Quaternion that represents a 45 degree rotation around X Axis
  Quaternion quaternion = new Quaternion(0.380f, 0f, 0.0f, 0.92f);

  // Insert the Quaternion into the KeyFrame
  quaternionKFA.InsertKeyFrame(1.0f, quaternion);
  quaternionKFA.Duration = TimeSpan.FromSeconds(1);

  // Attach to the Orientation property of Visual
  visual.StartAnimation("Orientation", quaternionKFA);
}

注解

通过调用 compositionObject.StartAnimation 并指定属性名称和动画 ,动画与对象的属性相关联。 有关可动画属性列表,请参阅 CompositionObject.StartAnimation 的备注部分。

四元数由两个可分辨部分组成:矢量和标量组件。 与关键帧动画一起使用时,四元数可以通过 4 个浮点数或 Vector3 和标量的 System.Numerics 表示法定义。 System.Numerics 为其中任一表示法提供构造函数。

将旋转转换为四元数时,可以利用 System.Numerics Quaternion 帮助程序函数,以便从轴/角度组合、旋转矩阵或 Yaw/Pitch/Roll 创建四元数。 在上面的示例中,可以从以下帮助程序构造相同的四元数:

Quaternion quaternion = Quaternion.CreateFromAxisAngle(new Vector3(1.0f, 0.0f, 0.0f), 0.78f);

属性

Comment

要与 CompositionObject 关联的字符串。

(继承自 CompositionObject)
Compositor

用于创建此 CompositionObjectCompositor

(继承自 CompositionObject)
DelayBehavior

关键帧动画的延迟行为。

(继承自 KeyFrameAnimation)
DelayTime

调用 CompositionObject.StartAnimation 之后动画开始前的延迟。

(继承自 KeyFrameAnimation)
Direction

动画正在播放的方向。

Direction 属性允许在动画具有 IterationCount 大于 1 的情况下,从头到尾驱动动画从头到尾或从头开始或交替。 这为自定义动画定义提供了一种简单的方法。

(继承自 KeyFrameAnimation)
DispatcherQueue

获取 CompositionObject 的 DispatcherQueue。

(继承自 CompositionObject)
Duration

动画的持续时间。

(继承自 KeyFrameAnimation)
ImplicitAnimations

附加到此对象的隐式动画的集合。

(继承自 CompositionObject)
InitialValueExpressions

获取动画的初始值。

(继承自 CompositionAnimation)
IterationBehavior

关键帧动画的迭代行为。

(继承自 KeyFrameAnimation)
IterationCount

重复关键帧动画的次数。

(继承自 KeyFrameAnimation)
KeyFrameCount

KeyFrameAnimation中的关键帧数。

(继承自 KeyFrameAnimation)
Properties

CompositionObject关联的属性的集合。

(继承自 CompositionObject)
StopBehavior

指定调用 StopAnimation 时如何设置属性值。

(继承自 KeyFrameAnimation)
Target

动画的目标。

(继承自 CompositionAnimation)

方法

ClearAllParameters()

清除动画的所有参数。

(继承自 CompositionAnimation)
ClearParameter(String)

从动画中清除参数。

(继承自 CompositionAnimation)
Close()

关闭 CompositionObject 并释放系统资源。

(继承自 CompositionObject)
Dispose()

执行与释放、释放或重置非托管资源关联的应用程序定义任务。

(继承自 CompositionObject)
InsertExpressionKeyFrame(Single, String, CompositionEasingFunction)

插入表达式关键帧。

(继承自 KeyFrameAnimation)
InsertExpressionKeyFrame(Single, String)

插入表达式关键帧。

(继承自 KeyFrameAnimation)
InsertKeyFrame(Single, Quaternion, CompositionEasingFunction)

使用指定的缓动函数插入关键帧。

InsertKeyFrame(Single, Quaternion)

插入关键帧。

PopulatePropertyInfo(String, AnimationPropertyInfo)

定义可以进行动画处理的属性。

(继承自 CompositionObject)
SetBooleanParameter(String, Boolean)

设置一个布尔值参数,用于 ExpressionAnimation表达式关键帧

(继承自 CompositionAnimation)
SetColorParameter(String, Color)

设置与 ExpressionAnimation表达式关键帧一起使用的 Color 值参数。

(继承自 CompositionAnimation)
SetExpressionReferenceParameter(String, IAnimationObject)

设置一个对象,该对象实现 IAnimationObject 作为 ExpressionAnimation中的引用参数。

(继承自 CompositionAnimation)
SetMatrix3x2Parameter(String, Matrix3x2)

设置 Matrix3x2 值参数,以便与 ExpressionAnimation表达式关键帧一起使用。

(继承自 CompositionAnimation)
SetMatrix4x4Parameter(String, Matrix4x4)

设置 Matrix4x4 值参数,以便与 ExpressionAnimation表达式关键帧一起使用。

(继承自 CompositionAnimation)
SetQuaternionParameter(String, Quaternion)

设置与 ExpressionAnimation表达式关键帧一起使用的四元数值。

(继承自 CompositionAnimation)
SetReferenceParameter(String, CompositionObject)

设置对 Composition 对象的引用,以便与 ExpressionAnimation表达式关键帧一起使用。

(继承自 CompositionAnimation)
SetScalarParameter(String, Single)

设置一个标量值参数,用于 ExpressionAnimation表达式关键帧

(继承自 CompositionAnimation)
SetVector2Parameter(String, Vector2)

设置一个 Vector2 值参数,用于 ExpressionAnimation表达式关键帧

(继承自 CompositionAnimation)
SetVector3Parameter(String, Vector3)

设置 Vector3 值参数,以便与 ExpressionAnimation表达式关键帧一起使用。

(继承自 CompositionAnimation)
SetVector4Parameter(String, Vector4)

设置一个 Vector4 值参数,用于 ExpressionAnimation表达式关键帧

(继承自 CompositionAnimation)
StartAnimation(String, CompositionAnimation, AnimationController)

将动画与对象的指定属性连接,并启动动画。

(继承自 CompositionObject)
StartAnimation(String, CompositionAnimation)

将动画与对象的指定属性连接,并启动动画。

(继承自 CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

启动动画组。

CompositionObject 上的 StartAnimationGroup 方法可用于启动 compositionAnimationGroup。 组中的所有动画将在对象上同时启动。

(继承自 CompositionObject)
StopAnimation(String)

断开与指定属性的动画的连接,并停止动画。

(继承自 CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

停止动画组。

(继承自 CompositionObject)
TryGetAnimationController(String)

返回指定属性上运行的动画的 AnimationController。

(继承自 CompositionObject)

适用于

另请参阅