Partilhar via


InteractionTracker.TryUpdateScaleWithAnimation Método

Definição

Tenta atualizar a escala com a animação especificada.

O método TryUpdateScaleWithAnimation atualiza a posição de escala do InteractionTracker com base no CompositionAnimation inserido como um parâmetro. Esse método é usado em situações em que o movimento do InteractionTracker precisa ser definido por uma animação específica, em vez da experiência tradicional de Inércia. TryUpdateScaleWithAnimation pode ser chamado do estado Ocioso ou Inércia – fazendo isso, a posição do InteractionTracker será controlada pela animação definida e entrará no estado 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

Parâmetros

animation
CompositionAnimation

A animação a ser aplicada à escala.

centerPoint
Vector3 Vector3

float3

O novo ponto central.

Retornos

Int32

int

Retorna a ID da solicitação. Em transições de estado, a solicitação que causou a alteração no estado será incluída nos argumentos. Essas IDs começarão em 1 e aumentarão a cada chamada try durante o tempo de vida do aplicativo.

Exemplos

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);
}

Comentários

Ao criar a animação com a qual você deseja atualizar a posição do InteractionTracker , você não precisa chamar Microsoft.UI.Composition.CompositionObject.StartAnimation. O sistema cuidará disso nos bastidores depois que a animação for passada por meio de TryUpdateScaleWithAnimation.

Ao definir a animação que animará a posição de escala do InteractionTracker , certifique-se de usar um ScalarKeyFrameAnimation ou um ExpressionAnimation que seja resolvido para um Escalar.

A tabela a seguir resume o comportamento esperado quando esse método é chamado em um estado específico:

Estado AtualResultado
OciosoA animação solicitada começa na propriedade solicitada, o estado é alterado para CustomAnimation
InteraçãoSolicitação ignorada
InérciaA animação solicitada começa na propriedade solicitada, o estado é alterado para CustomAnimation
CustomAnimationAs paradas de animação atuais e a nova animação solicitada começa na propriedade solicitada, o estado reinsere CustomAnimation

Aplica-se a