Domanda

È possibile creare uno storyboard in cui la seconda metà si ripete, ma la prima metà no? O in alternativa, posso fare in modo che uno storyboard inizi dopo che un altro è finito, tutto in xaml?

È stato utile?

Soluzione

Non credo che tu possa lavorare con le animazioni solo in XAML / Blend, devi comunque iniziare con il codice.

StoryBoard1.Begin();

Ma il codice per iniziare un'altra animazione così come finisce la prima è abbastanza semplice:

Per prima cosa ti iscrivi agli eventi completati nel codice:

this.Storyboard1.Completed += new EventHandler(Storyboard1_Completed);
this.Storyboard2.Completed += new EventHandler(Storyboard2_Completed);
this.Storyboard1.Begin();

Quindi nei gestori di eventi rispettati se Storyboard1 ha finito, inizi storyboard2 e viceversa.

private void Storyboard2_Completed(object sender, EventArgs e){
        this.Storyboard1.Begin();
}

private void Storyboard1_Completed(object sender, EventArgs e)
{
    this.Storyboard2.Begin();
}

Per aggiungere i gestori di eventi devi solo digitare Storyboard.Completed + = e quindi premere due volte tab e genererà i metodi necessari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top