У меня есть StackPanel, из которой я хочу удалить элемент. Прежде чем удалить элемент, я хочу выполнить анимацию элемента, чтобы сообщить, что элемент собирается быть удаленным. Однако выполнение анимации с последующим удалением элемента приводит к немедленному удалению элемента без видимой анимации. Есть ли правильный способ сделать это?
StackPanel myStackPanel = new StackPanel();
// myStackPanel is loaded with visible elements here.
// Time to remove an element!
MyUserControl control = myStackPanel.Children[0] as MyUserControl;
control.SomeAnimation.Begin();
myStackPanel.Children.Remove(control);
UPDATE
Я закончил тем, что сделал следующее уродство, чтобы заставить это работать как надеялся:
control.SomeAnimation.Begin();
Thread t = new Thread(delegate()
{
Thread.Sleep(500);
Dispatcher.BeginInvoke( () => myStackPanel.Children.Remove(control));
});
t.Start();