2011-04-14 7 views
5

¿Cómo verificaría el estado de un guión gráfico?¿Cómo verificar el estado de un guión gráfico?

Ejemplo:

if (storyboard.Completed += true) // ??? 
{ 
} 

(Este código hace no trabajo, por razones obvias.)

+1

Marca de retroceso para el código en línea; Nuevo párrafo y sangría de 4 espacios para bloques de código (seleccione bloque de código y presione el botón "{}" en el editor). Feliz SOA. –

+0

Gracias! Siempre me pregunté por qué el editor de código me odiaba ... – JavaAndCSharp

+0

solo quería verificar para ver si el siguiente responde su pregunta. –

Respuesta

4

Simplemente enganche el evento Completed y cuando su código se ejecute allí, el guión gráfico se habrá completado. Ver: http://msdn.microsoft.com/en-us/library/system.windows.media.animation.timeline.completed(VS.95).aspx#Y565

+0

¿Cómo usaría esto? (por ejemplo, storyboard.Completed + = Completed;) – JavaAndCSharp

+0

Eso es correcto. Consulte el ejemplo en http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/index.htm#/?sref=change_targetname_2 (haga clic en el botón "Ver código fuente de muestra" y luego en el botón C# que aparece en ese página en la parte superior). –

4

cómo sobre la creación de una variable booleana (por ejemplo IsCompleted) y configurarlo para cierto en la devolución de llamada Completado ?

1
if(storyboard.GetCurrentState() == ClockState.Active) 
{ 
    // do something 
} 
0

Esto no funciona.

  Storyboard storyBoardPulse = this.FindResource("StoryboardMainIconPulse") as Storyboard; 
 
      Storyboard.SetTarget(storyBoardPulse, this.imageIcon); 
 

 
      if (storyBoardPulse.GetCurrentState() != ClockState.Active) 
 
      { 
 
       storyBoardPulse.Begin(); 
 
      }

vuelve este error:

System.InvalidOperationException was unhandled by user code

HResult=-2146233079

Message=Impossible to execute the action. the Storyboard specify not applied to this object for interactive control.

Ao hago una solución muy sangrienta:

private Boolean pulseOn; 
 

 
private void operationsOfMaintenance_OperationExpired(Boolean state) 
 
     { 
 
      Storyboard storyBoardPulse = this.FindResource("StoryboardMainIconPulse") as Storyboard; 
 
      Storyboard.SetTarget(storyBoardPulse, this.imageIcon); 
 

 
      if (!state) 
 
      { 
 
       storyBoardPulse.Stop(); 
 
       storyBoardPulse.Remove(); 
 
       pulseOn = false; 
 
      } 
 
      else 
 
      { 
 
       if(!pulseOn)storyBoardPulse.Begin(); 
 
       pulseOn = true; 
 
      } 
 
     }

¡Hay algo extraño por qué el primer ejemplo obtiene un error!

gracias

Cuestiones relacionadas