2010-02-04 17 views
7

şey bu vardır: animasyonlar paralel düzgün çalışması (X ve Y birlikte büzülme)WPF senkron animasyon

scaleTransform.BeginAnimation(ScaleTransform.ScaleXProperty, shrinkAnimation); 
scaleTransform.BeginAnimation(ScaleTransform.ScaleYProperty, shrinkAnimation); 
MyDialog.Show(); 

ancak BeginAnimation bir asenkron çağrı için animasyon iken, Show() yöntem çalıştırılmaktadır hala çalışıyor (farz edelim shrinkAnimation 1 saniye çalışıyor).

Show() numaralı telefonu aramadan önce animasyonların nasıl tamamlanmasını bekleyebilirim?

Teşekkürler!

+0

bir çözüm ile kod benim son satırı değiştirmek şeklinde olur:) ( shrinkAnimation.Completed + = temsilci {MyDialog.Show; }; –

cevap

4

BeginAnimation yöntemi yerine, tamamlanmış bir olayı olan Storyboard kullanabilirsiniz. İşte bir örnek saydamlığını ayarlayarak,, ama aynı konsept: Mike daha kolay

DoubleAnimation animation = new DoubleAnimation(0.0, new Duration(TimeSpan.FromSeconds(1.0))); 

Storyboard board = new Storyboard(); 
board.Children.Add(animation); 

Storyboard.SetTarget(animation, MyButton); 
Storyboard.SetTargetProperty(animation, new PropertyPath("(Opacity)")); 

board.Completed += delegate 
{ 
    MessageBox.Show("DONE!"); 
}; 

board.Begin();