InteractionTrackerInertiaRestingValue 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
一个 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 |
用于创建此 CompositionObject 的 Compositor。 (继承自 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) | |
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) |