1

我在 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 中。

4

0 回答 0