QuaternionKeyFrameAnimation 类

定义

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

QuaternionKeyFrameAnimation 类是受支持的 KeyFrameAnimation类型之一,用于对视觉对象上的 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 个浮点数的 System.Numerics 或 Vector3 和标量来定义四元数。 System.Numerics 为这两种表示法之一提供构造函数。

将旋转转换为四元数时,可以利用 System.Numerics Quaternion 帮助程序函数,这些函数允许从轴/角度组合、旋转矩阵或偏航/俯仰/滚动中创建四元数。 在上面的示例中,可以从以下帮助程序构造相同的四元数:

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)

插入表达式关键帧。

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

插入表达式关键帧。

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

插入关键帧。

InsertKeyFrame(Single, Quaternion, CompositionEasingFunction)

插入具有指定缓动函数的关键帧。

PopulatePropertyInfo(String, AnimationPropertyInfo)

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

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

设置用于 ExpressionAnimation表达式关键帧的布尔值参数。

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

设置用于 ExpressionAnimation表达式关键帧Color 值参数。

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

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

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

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

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

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

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

设置用于 ExpressionAnimation表达式关键帧的四元数值。

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

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

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

设置用于 ExpressionAnimation表达式关键帧的标量值参数。

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

设置用于 ExpressionAnimation表达式关键帧Vector2 值参数。

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

设置用于 ExpressionAnimation表达式关键帧Vector3 值参数。

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

设置用于 ExpressionAnimation表达式关键帧Vector4 值参数。

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

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

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

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

(继承自 CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

启动动画组。

使用 CompositionObject 上的 StartAnimationGroup 方法可以启动 CompositionAnimationGroup。 组中的所有动画都将在 对象上同时启动。

(继承自 CompositionObject)
StopAnimation(String)

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

(继承自 CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

停止动画组。

(继承自 CompositionObject)
TryGetAnimationController(String)

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

(继承自 CompositionObject)

适用于

另请参阅