我在 MainWindow 中有一个为 GeometryModel3D 对象的立方体的动画代码
动画代码
private void animate(GeometryModel3D back)
{
Transform3DGroup transGroup = new Transform3DGroup();
DoubleAnimation cardAnimation = new DoubleAnimation();
cardAnimation.From = 0;
cardAnimation.To = 0.3;
cardAnimation.Duration = new Duration(TimeSpan.FromSeconds(2));
cardAnimation.AutoReverse = true;
Transform3D transform = new TranslateTransform3D(0, 0, 0);
transGroup.Children.Add(transform);
back.Transform = transGroup;
transform.BeginAnimation(TranslateTransform3D.OffsetZProperty,
cardAnimation);
}
在主窗口代码中我有
Window1 win1 = new Window1();
public MainWindow()
{
InitializeComponent();
}
public void textbox_keydown( KeyEventArgs e)
{
if(e.Key==Key.Return)
{
if( some condition nothing to do with animation at all)
{
animate(cube);
win1.ShowDialogue();
}
//Position1
}
}
当我运行程序第一次动画不显示并且 window1 显示时,现在我再次在文本框中输入一些条目并再次输入第二次动画显示,之后每次只有第一次它不显示。
另外,如果我输入 “动画(立方体);” 在位置 1 动画即使是第一次也能正常工作,每隔一次也会偏离路线。
为什么在上述情况下调用 textbox_keydown(KeyEventArgs e) 时动画第一次不工作,而在调用 textbox_keydown(KeyEventArgs e) 时只在第二次及以后工作。
我忘记了任何线程问题或启动吗?
上面的动画函数在 textbox_keydown(KeyEventArgs e) 之后的 MainWindow 中。