在Silverlight for Windows Phone ToolKit 中默認中有自帶的頁面Transitions:RollTransition、RotateTransition、SlideTransition、SwivelTransition、TurnstileTransition。你們若是查看源代碼,會發現這些Transition都是繼承自TransitionElement,而後定義一些特定的Mode去調用不一樣的StoryBoard去實現頁面切換效果,因而咱們能夠定義本身的Transition類,繼承自TransitionElement,調用本身定義的StoryBoard。 ide
下圖能夠方便你們理解Toolkit中默認的Forward、Backward、In、Out的流程spa
下面咱們就來自定義Page Transition:code
1. 首先,須要將App.xaml.cs中InitializePhoneApplication RootFrame改成RootFrame = new TransitionFrame();//set to transition xml
2. 添加對ToolKit的引用,添加類MyTransition,該類繼承自 TransitionElement,具體代碼以下blog
3. 編輯MainPage.xaml,添加ToolKit的名稱空間 xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"繼承
4. 向MainPage中添加頁面資源,即咱們定義的StoryBoard,詳細代碼見源代碼資源
5. 添加以下代碼,以增長頁面切換效果get
6. 添加第二個命名,作法同MainPage,不一樣的是修改StoryBoard 以顯示不一樣的切換效果it
7。 運行程序,會發現頁面切換效果io
PS:若是你們的頁面有背景顏色,在切換頁面的時候可能會出現黑屏或者白屏的狀況,由於在Windows Phone 中Pages都是放在一個容器中的,而容器的背景顏色是綁定當前系統的主題的顏色,因此你們能夠修改成背景顏色相近的顏色,以提供更好的用戶體驗。
修改方法爲在App.xaml.cs中 RootFrame = new TransitionFrame();//set to transition
下一行代碼中設置RootFrame的背景顏色便可
參考http://blogs.msdn.com/b/benwilli/archive/2011/02/04/custom-page-transitions-in-wp7.aspx