前にこんなんあったよ!ってだけ書いたSilverlight fot Windows Phone 7 Toolkitをちょっぴり使ってみると、めっちゃ便利。その中でもすばらしく便利な感じのTransitionを紹介。
Transitionの書き方は前にページ遷移のアニメーション - tmytのらくがきに書いたけども、Storyboardを作って、OnNavigatingFromとかをoverrideしてごにょごにょ... となかなかめんどくさい感じで、トランジションぐらい標準でサポートしてほしいんだけどFinalのSDKにははいるのかな・・・とかぼやいてました。
結局FinalのSDKではサポートされずに、そんなまさか... とおもっているとToolkitに導入されたので実質SDKでのサポートみたいなもんですね。
というわけで使い方。ひじょーにらくちんです。
まず、Microsoft.Phone.Controls.Toolkit への参照を追加します。
でもって、トランジションをつけたいページのXAMLにネームスペースを
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
みたいな感じで追加して、PhoneApplicationPageエレメント直下に次のXMLを追加。
<toolkit:TransitionService.NavigationInTransition> <toolkit:NavigationInTransition> <toolkit:NavigationInTransition.Backward> <toolkit:TurnstileTransition Mode="BackwardIn"/> </toolkit:NavigationInTransition.Backward> <toolkit:NavigationInTransition.Forward> <toolkit:TurnstileTransition Mode="ForwardIn"/> </toolkit:NavigationInTransition.Forward> </toolkit:NavigationInTransition> </toolkit:TransitionService.NavigationInTransition> <toolkit:TransitionService.NavigationOutTransition> <toolkit:NavigationOutTransition> <toolkit:NavigationOutTransition.Backward> <toolkit:TurnstileTransition Mode="BackwardOut"/> </toolkit:NavigationOutTransition.Backward> <toolkit:NavigationOutTransition.Forward> <toolkit:TurnstileTransition Mode="ForwardOut"/> </toolkit:NavigationOutTransition.Forward> </toolkit:NavigationOutTransition> </toolkit:TransitionService.NavigationOutTransition>
これでトランジションの設定はおしまい。すごいらくちん。
でもって、これだけだとトランジションが実行されないので、App.xaml.csをすこーしだけ編集。
App.xaml.csの最後のほう、Phone application initialization という名前のリージョンが設定されていて、非表示になってるとおもいます。そこを展開すると、InitializePhoneApplication という関数が定義されています。その中をみてみると次のような記述があります。
// Create the frame but don't set it as RootVisual yet; this allows the splash // screen to remain active until the application is ready to render. RootFrame = new PhoneApplicationFrame();
このRootFrameを生成する部分でPhoneApplicationFrameでなくTransitionFrameを生成するように書き換えてやります。こんな感じに。
RootFrame = new TransitionFrame();
ここまでできればトランジションは使えます。面倒なストーリーボードの記述とかも全くやらないでもtoolkitが全部めんどうみてくれます。
Windows Phone 7っぽいページ遷移がめっちゃ楽にできるので是非使ってみてください。