WP TIPS に戻る

Silverlight Toolkit を使わずカスタム Transition をするビヘイビア

サンプルプロジェクト CustomTransitionBehavior.zip

Silverlight Toolkit を使わずカスタム Transition をする で紹介した、Silverlight Toolkit を使用しないトランジション方法ですが、紹介した方法だとコードビハインドでアニメーションの制御をしなければなりません。
これでは再利用が難しくコードの見通しも良くありませんので、ビヘイビアにまとめました。

※生意気にも Reactive Extentions を使用していますが、コードが汚いです。綺麗にして頂ける方いらっしゃったら参考にさせて下さい。m(_ _)m

CustomTransitionBehavior の動き

まず CustomTransitionBehavior には、ストーリーボードを持つ 4つの依存関係プロパティがあります。

ForwardIn画面を開いた時のアニメーション
ForwardOut新しいページを開いた際のアニメーション
BackwardIn他のページから戻ってきた際のアニメーション
BackwardOut元のページに戻る際のアニメーション

※ Silverlight Toolkit の Transition と同じです。

CustomTransitionBehavior は、これらの依存関係プロパティに設定されたストーリーボードを画面遷移に合わせて実行します。
アニメーションが実行される順番は、

  • MainPage から NextPage への画面遷移時
  1. MainPage.ForwardOut アニメーション実行
  2. NextPage.ForwardIn アニメーション実行
  • NextPage から MainPage へ戻る際の画面遷移時
  1. NextPage.BackwardOut アニメーション実行
  2. MainPage.BackwardIn アニメーション実行

となります。

CustomTransitionBehavior の使用方法

  1. プロジェクトに追加とコンパイル
    Visual Studio で CustomTransitionBehavior.cs をプロジェクトに追加して、コンパイルが通るのを確認します。

  2. Expression Blend で上記 4種類の画面遷移用ストーリーボードの作成します。
  3. Blend の「アセット」→「ビヘイビアー」にある CustomTransitionBehavior を PhoneApplicationPage にドラッグ&ドロップします。
    customtransitionbehavior-01.jpg

  4. ドラッグ&ドロップした CustomTransitionBehavior の ForwardIn プロパティに作成した、ストーリーボード名を設定します。
    ForwardIn プロパティをクリックし「カスタム式」で作成したストーリーボードを指定します。
    {StaticResource ストーリーボード名} とします。
    customtransitionbehavior-02.jpg

  5. 後は起動すれば、画面遷移アニメーションが行われます。
    サンプルプロジェクトが上にありますので、確認してみて下さい。