У меня есть следующий код:
// Fade out the photo, and after, fade in canvas
double DurationSeconds = duration.TimeSpan.TotalSeconds;
System.Windows.Media.Animation.Storyboard storyboard = new System.Windows.Media.Animation.Storyboard();
System.Windows.Media.Animation.DoubleAnimation animScreenshot = new System.Windows.Media.Animation.DoubleAnimation(1, 0, new Duration(TimeSpan.FromSeconds(DurationSeconds / 3)));
System.Windows.Media.Animation.Storyboard.SetTargetName(animScreenshot, DrawingCanvasTransition.Name);
System.Windows.Media.Animation.Storyboard.SetTargetProperty(animScreenshot, new PropertyPath(Image.OpacityProperty));
// !!!
RectangleTransition.Opacity = 1; // <----------------- PROBLEM IS HERE
RectangleTransition.UpdateLayout();
System.Windows.Media.Animation.DoubleAnimation animRect = new System.Windows.Media.Animation.DoubleAnimation(1, 0, new Duration(TimeSpan.FromSeconds(DurationSeconds / 3)));
animRect.BeginTime = TimeSpan.FromSeconds( DurationSeconds * .66);
System.Windows.Media.Animation.Storyboard.SetTargetName(animRect, RectangleTransition.Name);
System.Windows.Media.Animation.Storyboard.SetTargetProperty(animRect, new PropertyPath(Rectangle.OpacityProperty));
storyboard.Children.Add(animScreenshot);
storyboard.Children.Add(animRect);
// And start!
storyboard.Begin(this);
Проблема в том, что при первом вызове функции анимация работает отлично.
Во второй раз свойство непрозрачности вообще не меняется. В чем может быть проблема?
В отладчике свойство .Opacity = 0 даже после строки, где оно должно измениться на 1.
Однако анимация работает.