InteractionTracker.TryUpdateScaleWithAnimation Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Tries to update the scale with the specified animation.
The TryUpdateScaleWithAnimation method updates the scale position of InteractionTracker based on the CompositionAnimation inputted as a parameter. This method is used in situations in which the motion of InteractionTracker needs to be defined by a specific animation, instead of the traditional Inertia experience. TryUpdateScaleWithAnimation can be called from the Idle or Inertia state – doing so, InteractionTracker ’s position will be driven by the defined animation and enter the CustomAnimation state.
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
Parameters
- animation
- CompositionAnimation
The animation to apply to the scale.
Returns
int
Returns the request ID. On state transitions, the request which caused the change in state will be included in the args. These IDs will start at 1 and increase with each try call during the lifetime of the application.
Examples
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);
}
Remarks
When creating the animation you want to update InteractionTracker ’s position with, you do not need to call Microsoft.UI.Composition.CompositionObject.StartAnimation. The system will take care of this behind the scenes once the animation is passed in via TryUpdateScaleWithAnimation.
When defining the animation that will animate InteractionTracker ’s scale position, be sure to either use a ScalarKeyFrameAnimation or an ExpressionAnimation that resolves to a Scalar.
The table below summarizes the expected behavior when this method is called in a particular state:
Current State | Outcome |
---|---|
Idle | Requested animation starts on requested property, state changes to CustomAnimation |
Interacting | Request ignored |
Inertia | Requested animation starts on requested property, state changes to CustomAnimation |
CustomAnimation | Current animation stops and new requested animation starts on requested property, state re-enters CustomAnimation |