2016-05-01 5 views
0

я оживляющий строку, используя эту функциюждать анимации, чтобы закончить, прежде чем возобновить

public static void Line(Canvas Drawing_Area, Point p1, Point p2) 
    { 
     Line line = new Line(); 
     Drawing_Area.Children.Insert(0, line); 
     line.Stroke = Brushes.Black; 
     line.StrokeThickness = 3; 
     Storyboard sb = new Storyboard(); 
     Random r = new Random(); 
     line.X1 = p1.X; 
     line.Y1 = p1.Y - TopMargin; 
     line.X2 = p1.X; 
     line.Y2 = p1.Y - TopMargin; 
     DoubleAnimation animation1 = new DoubleAnimation(line.Y1, p1.Y - TopMargin, new Duration(new TimeSpan(0, 0, 1))); 
     DoubleAnimation animation2 = new DoubleAnimation(line.X1, p1.X, new Duration(new TimeSpan(0, 0, 1))); 
     DoubleAnimation animation3 = new DoubleAnimation(line.Y2, p2.Y - TopMargin, new Duration(new TimeSpan(0, 0, 1))); 
     DoubleAnimation animation4 = new DoubleAnimation(line.X2, p2.X, new Duration(new TimeSpan(0, 0, 1))); 
     Storyboard.SetTargetProperty(animation1, new PropertyPath("(Line.Y1)")); 
     Storyboard.SetTargetProperty(animation2, new PropertyPath("(Line.X1)")); 
     Storyboard.SetTargetProperty(animation3, new PropertyPath("(Line.Y2)")); 
     Storyboard.SetTargetProperty(animation4, new PropertyPath("(Line.X2)")); 
     sb.Children.Add(animation1); 
     sb.Children.Add(animation2); 
     sb.Children.Add(animation3); 
     sb.Children.Add(animation4); 
     sb.Begin(line); 
    } 

как я могу ждать анимации, чтобы закончить, прежде чем продолжить (существующие функции)

ответ

0

раскадровка имеет Completed событие который вы можете подписаться на это, сообщает вам, когда раскадровка закончила работать.

Вы также можете использовать Event Wait Handles, чтобы заблокировать поток от продолжающегося выполнения до тех пор, пока не произойдет другое событие.

Смежные вопросы