1
요소를 제거하려는 StackPanel이 있습니다. 요소를 제거하기 전에 요소에 대한 애니메이션을 수행하여 요소가 제거 되려고한다는 신호를 보내려고합니다. 그러나 요소를 제거하여 애니메이션을 수행하면 요소가 즉시 제거되고 보이지 않는 애니메이션이 제거됩니다. 이 작업을 수행하는 올바른 방법이 있습니까?UI에서 제거하려고하는 요소의 애니메이션
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();
좋은 제안입니다. 그러나 내 목적에 따라 MyUserControl에 대한 공개 호출의 일부로 애니메이션이 실행됩니다. 페이드 아웃 효과를 애니메이션화하는 MyUserControl.FadeOut()과 비슷한 것이지만 MyStackPanel.FadeOut() 메서드에서는 호스팅하는 StackPanel에 액세스 할 수 없습니다. – David