InteractionTracker.TryUpdateScaleWithAnimation 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
尝试使用指定的动画更新刻度。
TryUpdateScaleWithAnimation 方法根据作为参数输入的 CompositionAnimation 更新 InteractionTracker 的缩放位置。 此方法用于需要由特定动画(而不是传统惯性体验)定义 InteractionTracker 运动的情况。 可以从空闲或惯性状态调用 TryUpdateScaleWithAnimation - 这样做, InteractionTracker 的位置将由定义的动画驱动并进入 CustomAnimation 状态。
public:
virtual int TryUpdateScaleWithAnimation(CompositionAnimation ^ animation, float3 centerPoint) = TryUpdateScaleWithAnimation;
int TryUpdateScaleWithAnimation(CompositionAnimation const& animation, float3 const& centerPoint);
public int TryUpdateScaleWithAnimation(CompositionAnimation animation, Vector3 centerPoint);
function tryUpdateScaleWithAnimation(animation, centerPoint)
Public Function TryUpdateScaleWithAnimation (animation As CompositionAnimation, centerPoint As Vector3) As Integer
参数
- animation
- CompositionAnimation
要应用于刻度的动画。
返回
Int32
int
返回请求 ID。 在状态转换时,导致状态更改的请求将包含在参数中。 这些 ID 将从 1 开始,并在应用程序的生存期内随着每次尝试调用而增加。
示例
void CustomAnimationForIT(float newScale, Vector3 newCenterPoint)
{
// Create a cubic bezier easing function that will be used in the KeyFrames
CompositionEasingFunction cubicBezier = _compositor.CreateCubicBezierEasingFunction(new Vector2(.17f, .67f), new Vector2(1f, 1f);
// Create the Vector3 KFA
ScalarKeyFrameAnimation kfa = _compositor.CreateScalarKeyFrameAnimation();
kfa.Duration = TimeSpan.FromSeconds(3);
// Create the KeyFrames
kfa.InsertKeyFrame(1.0f, newScale, cubicBezier);
// Update InteractionTracker position using this animation
_tracker.TryUpdatePositionWithAnimation(kfa, newCenterPoint);
}
注解
创建要用于更新 InteractionTracker 位置的动画时,无需调用 Microsoft.UI.Composition.CompositionObject.StartAnimation。 通过 TryUpdateScaleWithAnimation 传入动画后,系统会在后台处理此操作。
定义对 InteractionTracker 缩放位置进行动画处理的动画时,请确保使用 ScalarKeyFrameAnimation 或解析为标量的 ExpressionAnimation 。
下表汇总了在特定状态下调用此方法时的预期行为:
当前状态 | 业务成效 |
---|---|
闲置 | 请求的动画从请求的属性开始,状态更改到 CustomAnimation |
正在交互 | 请求已忽略 |
惯性 | 请求的动画从请求的属性开始,状态更改到 CustomAnimation |
CustomAnimation | 当前动画停止,新请求的动画在请求的属性上启动,状态重新进入 CustomAnimation |