Сильверлайт:Сделайте часть повторения раскадровки
-
20-08-2019 - |
Вопрос
Можно ли создать раскадровку, в которой вторая половина повторяется, а первая — нет?Или, альтернативно, могу ли я запустить одну раскадровку после завершения другой, все в xaml?
Решение
Я не думаю, что вы можете работать с анимацией только в XAML/Blend, вам все равно нужно начинать ее в коде.
StoryBoard1.Begin();
Но код для запуска другой анимации сразу после завершения первой довольно прост:
Сначала вы подписываетесь на события Completed в коде:
this.Storyboard1.Completed += new EventHandler(Storyboard1_Completed);
this.Storyboard2.Completed += new EventHandler(Storyboard2_Completed);
this.Storyboard1.Begin();
Затем в уважаемых обработчиках событий, если Storyboard1 завершен, вы запускаете Storyboard2 и наоборот.
private void Storyboard2_Completed(object sender, EventArgs e){
this.Storyboard1.Begin();
}
private void Storyboard1_Completed(object sender, EventArgs e)
{
this.Storyboard2.Begin();
}
Чтобы добавить обработчики событий, вам просто нужно ввести Storyboard.Completed +=, а затем дважды нажать Tab, и он сгенерирует необходимые методы.
Не связан с StackOverflow