InteractionTrackerInertiaRestingValue 类

定义

一个 ExpressionAnimation ,用于定义交互后的其余位置。

InteractionTrackerInertiaRestingValue 类定义两个 ExpressionAnimation,用于在满足特定条件时计算 InteractionTracker 的显式静态位置。 InteractionTrackerInertiaRestingValue 定义为两部分:一个条件语句,其中需要显式定义 InteractionTracker 的特定静态位置(如果为 true),以及描述输出位置的数学关系的等式。 当需要确保 InteractionTracker 在交互发生后登陆到特定位置时,请使用 InteractionTrackerInertiaRestingValue 类。

public ref class InteractionTrackerInertiaRestingValue sealed : InteractionTrackerInertiaModifier
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class InteractionTrackerInertiaRestingValue final : InteractionTrackerInertiaModifier
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class InteractionTrackerInertiaRestingValue : InteractionTrackerInertiaModifier
Public NotInheritable Class InteractionTrackerInertiaRestingValue
Inherits InteractionTrackerInertiaModifier
继承
Object Platform::Object IInspectable CompositionObject InteractionTrackerInertiaModifier InteractionTrackerInertiaRestingValue
属性

Windows 要求

设备系列
Windows 10 Anniversary Edition (在 10.0.14393.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v3.0 中引入)

示例

void MandatorySingleSnapPoints(ContainerVisual containerVisual, Visual contentVisual)
{
  //
  // Set up our inertia modifiers to behave as dmanip's "single mandatory" snap-points, at a
  // regular interval of 50px.
  //

  const float snapPointRange = 50.0f;

  //
  // Configure a "snap-point" to handle upward direction (to previous item).
  //

  var modifier1 = InteractionTrackerInertiaRestingValue.Create(_compositor);

  // Add a condition for when this upward “snap-point” applies.
  modifier1.Condition = _compositor.CreateExpressionAnimation(
    "this.Target.NaturalRestingPosition.y < " + 
    "(this.StartingValue - mod(this.StartingValue, snapPointRange) + snapPointRange / 2)");

  modifier1.Condition.SetScalarParameter("snapPointRange", snapPointRange);

  // Configure the resting spot when the condition is met 
  modifier1.EndPoint = _compositor.CreateExpressionAnimation(
    "this.StartingValue - mod(this.StartingValue, snapPointRange)");

  modifier1.EndPoint.SetScalarParameter("snapPointRange", snapPointRange);

  //
  // Configure a "snap-point" to handle downward direction (to next item).
  //

  var modifier2 = InteractionTrackerInertiaRestingValue.Create(_compositor);

  // Add a condition for when this downward “snap-point” applies.
  modifier2.Condition = _compositor.CreateExpressionAnimation(
    "this.Target.NaturalRestingPosition.y >= " + 
    "(this.StartingValue - mod(this.StartingValue, snapPointRange) + snapPointRange / 2)");

  modifier2.Condition.SetScalarParameter("snapPointRange", snapPointRange);

  // Configure the resting spot when the condition is met.
  modifier2.EndPoint = _compositor.CreateExpressionAnimation(
    "this.StartingValue + snapPointRange - mod(this.StartingValue, snapPointRange)");

  modifier2.EndPoint.SetScalarParameter("snapPointRange", snapPointRange);

  var modifiers = new InteractionTrackerInertiaRestingValue[] { modifier1, modifier2 };

  //
  // Add our "snap-point" inertia modifiers to the Y position of the InteractionTracker.
  //

  _tracker.ConfigurePositionYInertiaModifiers(modifiers);
}

注解

将 InteractionTrackerInertiaRestingValue 修饰符附加到 InteractionTracker 时,可以将其配置为 X/Y 位置或缩放。

当交互完成时,定义条件属性的 ExpressionAnimation 仅运行一次, (手指松开) ,而 RestingValue 表达式将运行每个帧。

InteractionTrackerInertiaRestingValue 修饰符显式定义满足条件时 InteractionTracker 的静态位置。 但是,它不会定义到此显式位置的运动 - 系统将处理该操作。 因此,如果需要 InteractionTracker 执行特定动作,但不需要它降落在精确位置,请使用 InteractionTrackerInertiaMotion 修饰符。

属性

Comment

要与 CompositionObject 关联的字符串。

(继承自 CompositionObject)
Compositor

用于创建此 CompositionObjectCompositor

(继承自 CompositionObject)
Condition

描述何时应应用修饰符的 ExpressionAnimation

Condition 属性是一个 ExpressionAnimation ,用于定义 InteractionTracker 何时应具有特定的静止位置。 此表达式在交互发生后运行一次,并且必须解析为 Bool 类型,否则在计算条件时将引发错误。 有关生成表达式的更多详细信息,请参阅 ExpressionAnimation 类页。

Dispatcher

CompositionObject 的调度程序。

(继承自 CompositionObject)
DispatcherQueue

获取 CompostionObject 的 DispatcherQueue

(继承自 CompositionObject)
ImplicitAnimations

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

(继承自 CompositionObject)
Properties

CompositionObject 关联的属性的集合。

(继承自 CompositionObject)
RestingValue

一个 ExpressionAnimation ,用于定义 InteractionTracker 的静态值(如果 Condition 属性中的表达式为 true)。

Resting 属性是一个 ExpressionAnimation ,用于描述交互后如果满足相应条件, InteractionTracker 将移动到的位置。 当 InteractionTracker 处于 Inertia 状态时,此表达式将在每帧运行,并且必须解析为 Float 类型,否则在计算公式时将引发错误。 有关生成表达式的更多详细信息,请参阅 ExpressionAnimation 类页。

方法

Close()

关闭 CompositionObject 并释放系统资源。

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

连接和动画。

(继承自 CompositionObject)
Create(Compositor)

创建 InteractionTrackerInertiaRestingValue 的实例。

DisconnectAnimation(String)

断开动画的连接。

(继承自 CompositionObject)
Dispose()

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

(继承自 CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

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

(继承自 CompositionObject)
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)

适用于

另请参阅