我如何在 WPF 的循环中使用 DoubleAnimation?
How can i use DoubleAnimation in a loop in WPF?
我想在 for 循环中使用动画。但是我只能看到最后一个动画
根据我的搜索,我必须使用故事板。我的代码如下。
Random rnd = new Random();
Storyboard sb = new Storyboard();
public MainWindow()
{
InitializeComponent();
for (int i = 1; i < 4; i++)
{
int temp = rnd.Next(1-3);
move(cisim, 10*temp, 20*temp, 3);
}
}
public void move( Image target,double oldX,double newX,int time)
{
DoubleAnimation anim2 = new DoubleAnimation(oldX,newX,TimeSpan.FromSeconds(time));
Storyboard.SetTarget(anim2, target);
Storyboard.SetTargetProperty(anim2, new PropertyPath("(Canvas.Left)"));
sb.Children.Add(anim2);
Canvas.BeginStoryboard(sb);
}
我想看动画3遍。例如:
Animation1->start - finish (after) Animation2->start - finish.
当我 运行 我的代码时,我只看到最后一个动画。我错过了什么?
您需要将 begintime 设置为从第二个开始,以便让之前的人有时间做他们的事情。
此时您所有的动画都会立即开始。
我想在 for 循环中使用动画。但是我只能看到最后一个动画
根据我的搜索,我必须使用故事板。我的代码如下。
Random rnd = new Random();
Storyboard sb = new Storyboard();
public MainWindow()
{
InitializeComponent();
for (int i = 1; i < 4; i++)
{
int temp = rnd.Next(1-3);
move(cisim, 10*temp, 20*temp, 3);
}
}
public void move( Image target,double oldX,double newX,int time)
{
DoubleAnimation anim2 = new DoubleAnimation(oldX,newX,TimeSpan.FromSeconds(time));
Storyboard.SetTarget(anim2, target);
Storyboard.SetTargetProperty(anim2, new PropertyPath("(Canvas.Left)"));
sb.Children.Add(anim2);
Canvas.BeginStoryboard(sb);
}
我想看动画3遍。例如:
Animation1->start - finish (after) Animation2->start - finish.
当我 运行 我的代码时,我只看到最后一个动画。我错过了什么?
您需要将 begintime 设置为从第二个开始,以便让之前的人有时间做他们的事情。
此时您所有的动画都会立即开始。