2

そのため、ScatterViewItemをあるポイントから別のポイントに移動しようとしています。PointAnimationを使ってみました。ただし、アニメーションが完了した後、アイテムをToポイントから移動できません。アイテムを回転させて拡大縮小することはできますが、何らかの理由で移動できません。

これは、あるポイントから次のポイントへの直線的な単純な移動です。PointAnimationを使用する必要がありますか、それともより良い方法がありますか?おかげで私はC#でこれをやっています

私のポイントアニメーションコード:

        oPointAnimation = new PointAnimation();
        oPointAnimation.From = new Point(439, 113);
        oPointAnimation.To = new Point(139, 160);

        oPointAnimation.Duration = TimeSpan.FromSeconds(4);
        oPointAnimation.Completed += new EventHandler(oPointAnimation_Completed);
        theCard.BeginAnimation(ScatterViewItem.CenterProperty, oPointAnimation);
4

2 に答える 2

1

私はあなたがFillBehavior="Stop"にPOintAnimationのFillBehaviourを使用する必要があると思います

于 2009-10-07T22:30:39.730 に答える
1

あなたはすでに受け入れられた答えを持っていますが、私はここにポイントを追加したいと思います。

FillBehaviorがStopに設定されていても、機能しない場合があります。これは、SnapshotAndReplaceに設定されたHandoffBehaviorと関連していると思います。そのような場合に私が行ったことは、2番目の引数としてその依存関係プロパティで新しいアニメーションをプログラムで開始することです( BeginAnimationを使用)。null

// Remove all animations for the Opacity property on the myElement element 
myElement.BeginAnimation(UIElement.OpacityProperty, null)

これにより、その依存関係プロパティのすべてのアニメーションが効果的にクリアされ、新しい値を自由に割り当てることができます。

于 2009-12-02T09:41:10.323 に答える