グリッド内に 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 ピクセル程度しかスライドしていないのが見えます。最後までスライドするわけではありません。