1

GeometryModel3D オブジェクトである立方体の MainWindow にアニメーション コードがあります。

アニメーション コード

  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 が表示されますが、テキストボックスにいくつかのエントリを入力して、2 回目のアニメーションが表示され、その後は毎回初めて表示されません。

また、 「animate(cube);」と入力すると 位置 1 のアニメーションは初めてでも機能し、コース外でも 1 回おきに機能します。

上記のケースで textbox_keydown( KeyEventArgs e) が呼び出されたときに初めてアニメーションが機能せず、 textbox_keydown( KeyEventArgs e) が呼び出されたときに 2 回目以降のみ機能するのはなぜですか。

私が忘れているthreadindの問題や開始はありますか?

上記のアニメーション関数は、 textbox_keydown( KeyEventArgs e) の後に MainWindow にあります。

4

0 に答える 0