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