0

グリッド内に 2 つのキャンバスがあり、トランジションしたいフル シーンの「イメージ」があります。これら 2 つのキャンバス コントロール間をどのようにトランジションするのだろうかと思います。

プログラムで最初のキャンバスをグリッドに追加し、次に 2 番目のキャンバスをグリッドに追加し、最初のキャンバスを削除します。本当にやりたいのは、それらの間の遷移です。

プログラムでこれを達成する方法について何か提案はありますか?

ありがとう。

編集:私はこの方法を実装しましたが、問題があります.誰かが私が間違って使用しているかどうかを教えてくれますか?

     private void doTransitionIn(Canvas slide)
    {
        SlideTransition slideLeft = new SlideTransition();
        slideLeft.Mode = SlideTransitionMode.SlideDownFadeIn;

        ITransition transition = slideLeft.GetTransition(slide);

        transition.Completed += delegate { transition.Stop(); }; transition.Begin();
    }

    private void doTransitionOut(Canvas slide)
    {
        SlideTransition slideLeft = new SlideTransition();
        slideLeft.Mode = SlideTransitionMode.SlideDownFadeOut;

        ITransition transition = slideLeft.GetTransition(slide);
        transition.Completed += delegate { transition.Stop(); }; transition.Begin();
    }

そして、これが私がそれを使用する方法です:

            SceneGrid.Children.Add(nextCanvas);
            doTransitionIn(nextCanvas);
            doTransitionOut(currentCanvas);
            SceneGrid.Children.Remove(currentCanvas);

これに関する問題は、アニメーションが画面の途中からのみ開始するように見えることです。最後の 20 ピクセル程度しかスライドしていないのが見えます。最後までスライドするわけではありません。

4

2 に答える 2

0

Silverlight ToolkitTransitioningContentControlの一部である を使用することをお勧めします。このコントロールを使用するには、このコントロールの最初のを作成します。移行するには、を次のものに変更するだけで、後は が行います!CanvasContentContentCanvasTransitioningContentControl

このコントロールのチュートリアルを提供するブログ投稿が多数あります。

http://blogs.academicclub.org/uidev/2010/06/12/transitioning-content-in-silverlight/

于 2011-05-18T12:59:38.943 に答える
0

「トランジション」の意味に応じて、各キャンバスの非表示/表示をアニメーション化する StoryBoard の作成を検討します。

于 2011-05-18T12:59:04.293 に答える