none
WPF中使用Navigation切换Page时,如何实现渐变或者翻转动画? RRS feed

  • 问题

  • 界面如图,整体为1个Grid,嵌套上下2个Grid
    1部分不动,2部分的Grid为切换的Page位置

    单击【房产展示】时,
    就使用Navigation切换Page,2部分整体切换,切换Page时如何实现渐变或者翻转动画?或者其他动画效果

    在网上已经找到类似效果,但是是整个窗体的内容切换,看源码看不明白无法下手修改...
    附上地址:
    WPF Page切换(支持淡入淡出效果) - nonocast - 博客园
    http://www.cnblogs.com/nonocast/archive/2009/09/27/1575189.html
    源码:
    http://nonocast.cn/gallery/cnblogs/wpf.page.example.7z

    本来毕业设计是WinForm的,还是比较熟练的
    结果现在改为WPF,实在没有接触过,时间又紧,麻烦各位帮忙!

     

    2014年4月24日 2:52

答案

  • 这个东西纠结了3天快要死了,终于弄好了,主要是没有时间研究,没有基础,只为实现功能!
    --------------------------------------------------------------------------------------------

    1、主要还是不知道怎么利用Page进行Animation动画,在百度搜索的都是国内的资料,都不怎么合适。
         先说说搜到的一些个资料吧!

         第一个 
         搜到一个利用NavigationWindow中Navigating事件进行动画的,但一是NavigationWindow直接是一个窗体,页面一切换所有的都换了,
         这与我要求的只改变部分界面要求不符

         第二个
         利用Grid的长宽变化进行动画,再利用Hide进行隐藏,但是我的界面层次非常多,一是资源开销,二是在一个XAML中写那么多Grid真的好么

    2、我的解决办法
         网上搜的资料也不是没有用的,给了我很大启示啊~

         第一个(除了些问题,但应该可以成功,提供参考)
         将 NavigationWindow组成Usercontrol进行使用,提示Window类型不能存在低于其的Usercontrol中
         网上搜索发现是可以的,只需使NavigationWindow继承Usercontrol,恕我无能怎么试都报错,但是众多网友说可行~
         参考网址:
         http://www.cnblogs.com/nonocast/archive/2009/09/27/1575189.html
        

         第二个(成功)
         将Page做成Usercontrol,然后对Usercontrol做文章,简单方便,就是没有导航只能自己做导航按钮了
         附上一个外国人做的动画合集,渐入、翻转、透明、滑动什么都有,参考作用很大
         http://www.codeproject.com/Articles/197132/Simple-WPF-Page-Transitions
         http://www.cnblogs.com/DeepBlues/archive/2013/01/19/2867530.html
        

    • 已标记为答案 Mars-Chizai 2014年4月26日 15:41
    2014年4月26日 15:41

全部回复

  • 在整个界面切换的时候可以让第二个UI出现时间晚几秒 然后将自己原来的UI实现渐变的animation的效果 时间保持一致就好了。楼主可以换个思路试试
    2014年4月24日 7:56
  • 谢谢提供思路,Google了一天,已经找到解决办法了

    2014年4月26日 14:33
  • 这个东西纠结了3天快要死了,终于弄好了,主要是没有时间研究,没有基础,只为实现功能!
    --------------------------------------------------------------------------------------------

    1、主要还是不知道怎么利用Page进行Animation动画,在百度搜索的都是国内的资料,都不怎么合适。
         先说说搜到的一些个资料吧!

         第一个 
         搜到一个利用NavigationWindow中Navigating事件进行动画的,但一是NavigationWindow直接是一个窗体,页面一切换所有的都换了,
         这与我要求的只改变部分界面要求不符

         第二个
         利用Grid的长宽变化进行动画,再利用Hide进行隐藏,但是我的界面层次非常多,一是资源开销,二是在一个XAML中写那么多Grid真的好么

    2、我的解决办法
         网上搜的资料也不是没有用的,给了我很大启示啊~

         第一个(除了些问题,但应该可以成功,提供参考)
         将 NavigationWindow组成Usercontrol进行使用,提示Window类型不能存在低于其的Usercontrol中
         网上搜索发现是可以的,只需使NavigationWindow继承Usercontrol,恕我无能怎么试都报错,但是众多网友说可行~
         参考网址:
         http://www.cnblogs.com/nonocast/archive/2009/09/27/1575189.html
        

         第二个(成功)
         将Page做成Usercontrol,然后对Usercontrol做文章,简单方便,就是没有导航只能自己做导航按钮了
         附上一个外国人做的动画合集,渐入、翻转、透明、滑动什么都有,参考作用很大
         http://www.codeproject.com/Articles/197132/Simple-WPF-Page-Transitions
         http://www.cnblogs.com/DeepBlues/archive/2013/01/19/2867530.html
        

    • 已标记为答案 Mars-Chizai 2014年4月26日 15:41
    2014年4月26日 15:41