在恢复之前等待动画完成

时间:2016-05-01 04:49:58

标签: c# wpf storyboard

我正在使用此功能设置动画

 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);
    }

如何在继续之前等待动画完成(现有函数)

1 个答案:

答案 0 :(得分:0)

Storyboard有一个Completed事件,您可以订阅它,告诉您故事板何时完成运行。

您还可以使用Event Wait Handles阻止线程继续执行,直到您的其他事件触发为止。