前端屌丝

导航

windowsphone8翻页效果

要在一个页面添加跳转动画效果,只要在页面头部引入

xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"

然后添加一段代码就可以

<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,找到这句

RootFrame = new PhoneApplicationFrame();

注释掉替换成

RootFrame = new TransitionFrame();

写一个简单的跳转来试试,应该可以出效果了。现在有动画了,看似大功告成了,但是在一个app里往往所有页面跳转的风格都是一致的,那岂不是要在每个页面都粘贴一遍,显然这不科学。所以接着往下看,把上面在MainPage里做的都删掉,打开app.xaml文件在<Application.Resources>下添加下面代码

<Style x:Key="PageTranstionStyle" TargetType="phone:PhoneApplicationPage">
        <Setter Property="toolkit:TransitionService.NavigationInTransition">
            <Setter.Value>
                <toolkit:NavigationInTransition>
                    <toolkit:NavigationInTransition.Backward>
                        <toolkit:TurnstileTransition Mode="BackwardIn"/>
                    </toolkit:NavigationInTransition.Backward>
                    <toolkit:NavigationInTransition.Forward>
                        <toolkit:TurnstileTransition Mode="ForwardIn"/>
                    </toolkit:NavigationInTransition.Forward>
                </toolkit:NavigationInTransition>
            </Setter.Value>
        </Setter>
        <Setter Property="toolkit:TransitionService.NavigationOutTransition">
            <Setter.Value>
                <toolkit:NavigationOutTransition>
                    <toolkit:NavigationOutTransition.Backward>
                        <toolkit:TurnstileTransition Mode="BackwardOut"/>
                    </toolkit:NavigationOutTransition.Backward>
                    <toolkit:NavigationOutTransition.Forward>
                        <toolkit:TurnstileTransition Mode="ForwardOut"/>
                    </toolkit:NavigationOutTransition.Forward>
                </toolkit:NavigationOutTransition>
            </Setter.Value>
        </Setter>
    </Style>

最后在MainPage里面<phone:phoneApplication>里添加Style="{StaticResource PageTranstionStyle}"对app资源的引用。 ok,大功告成了。这样就不用在每个页面里都复制那么长的一段代码,只要加上一句就可以。

wptoolkit里为我们提供了一些比较常用的页面切换效果

  • SlideTransition : 上下或者左右滑动效果,具体有Mode值决定:
    • SlideUpFadeIn 向上飞入
    • SlideUpFadeOut 向上飞出
    • SlideDownFadeIn 向下飞入
    • SlideDownFadeOut 向下飞出
    • SlideLeftFadeIn 向左飞入
    • SlideLeftFadeIn 向左飞出
    • SlideRightFadeIn 向右飞入
    • SlideRightFadeIn 向右飞出
  • RollTransition:360度旋转动画效果
  • RotateTransition :旋转效果,Mode枚举值如下:
    • In180Clockwise 180顺时针转入
    • Out180Clockwise 180顺时针转出
    • In180Counterclockwise 180逆时针转入
    • Out180Counterclockwise 180逆时针转出
    • In90Clockwise 90顺时针转入
    • Out90Clockwise 90顺时针转出
    • In90Counterclockwise 90逆时针转入
    • Out90Counterclockwise 90逆时针转出
  • SwivelTransition : 垂直翻转动画效果,Mode值枚举如下:
    • BackwardIn 向后翻转入
    • BackwardOut 向后翻转出
    • ForwardIn 向前翻转入
    • ForwardOut 向前翻转出
    • FullScreenIn 全屏翻转入
    • FullScreenOut 全屏翻转出
  • TurnstileTransition:左右翻页动画效果,Mode枚举值如下:
    • BackwardIn 向后翻入
    • BackwardOut 向后翻出
    • ForwardIn 向前翻入
    • ForwardOut 向前翻出

如果还是对效果不满意怎么办,没关系,既然有了wptoolkit的源码,那就看看源码里的transitions是怎么写的。在Microsoft.Phone.Controls.Toolkit.WP8项目里找到Transitions文件夹,我们看到里面有一个StoryBoard文件夹。就是这了,原来wptoolkit也是通过写storyboard的方法实现的动画,只不过是把这些封装起来而已。随便打开一个xaml文件,里面的代码已经很精简很清楚了,修改它的值然后重新编译吧。

posted on 2013-12-22 22:46  前端屌丝  阅读(250)  评论(0编辑  收藏  举报