Pregunta

Tengo algo como esto:

barProgress.BeginAnimation(RangeBase.ValueProperty, new DoubleAnimation(
    barProgress.Value, dNextProgressValue,
    new Duration(TimeSpan.FromSeconds(dDuration)));

Ahora, ¿cómo podría dejar que la animación (el DoubleAnimation)?La razón por la que quiero hacer esto, es porque me gustaría empezar a nuevas animaciones (esto parece funcionar, pero es difícil decir) y, finalmente, detener la última animación...

¿Fue útil?

Solución

Para detenerlo, llamada BeginAnimation de nuevo con el segundo argumento establecido en el null.

Otros consejos

Cuando el uso de storyboards para el control de una animación, asegúrese de que establece el segundo parámetro a true en el fin de establecer la animación como controlable:

public void Begin(
    FrameworkContentElement containingObject,
    **bool isControllable**
)

Hay dos formas de detener un BeginAnimation.El primero es llamar a BeginAnimation de nuevo con el segundo parámetro se establece en null.Esto eliminará todas las animaciones de la propiedad y volver el valor de regreso a su valor base.

Dependiendo de cómo se está utilizando este valor puede no ser el comportamiento que usted quiere.La segunda manera es establecer las animaciones BeginTime a null, llamada BeginAnimation con ella.Esto eliminará específico de la animación y dejar el valor en su posición actual.

DoubleAnimation myAnimation = new Animation();
// Initialize animation
...

// To start
element.BeginAnimation(Property, myAnimation);

// To stop and keep the current value of the animated property
myAnimation.BeginTime = null;
element.BeginAnimation(Property, myAnimation);

Si desea que el valor de la base para convertirse en el valor eficaz de nuevo, usted debe detener la animación de influir en el la propiedad.Hay tres maneras de hacer esto con guión de animación:

  • Establecer la animación del FillBehavior propiedad para Detener
  • Quitar el Storyboard completo
  • Quitar la animación de la la propiedad individual

De MSDN

Cómo:Establecer una Propiedad Después de la Animación con un Guión gráfico

En mi caso tuve que usar dos comandos, mi xaml tiene un botón que activa un desencadenador, y el disparo se activa el guión de animación.

He puesto un botón para detener la animación con este código:

MyBeginStoryboard.Storyboard.Begin(this, true);
MyBeginStoryboard.Storyboard.Stop(this);

No me gusta pero lo que realmente funciona aquí.Darle una oportunidad!

<Trigger.EnterActions>
       <BeginStoryboard x:Name="myStory">
       .........
       </BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
       <StopStoryboard BeginStoryboardName="myStory"/>
</Trigger.ExitActions>

Lugar de la animación en un Guión gráfico.Llamar a Begin() y Stop() en el guión gráfico para comenzar a detener las animaciones.

Usted puede utilizar este código:

[StoryBoardName].Remove([StoryBoardOwnerControl]);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top