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 にあります。