我正在使用此功能设置动画
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 :(得分:0)
Storyboard有一个Completed事件,您可以订阅它,告诉您故事板何时完成运行。
您还可以使用Event Wait Handles阻止线程继续执行,直到您的其他事件触发为止。