WPF Page切换(支持淡入淡出效果)

本文包括以下内容:
1.    如何实现Page切换
2.    如何为Page增加淡入淡出(Fade)效果
3.    示例
4.    下一步

如何实现Page切换
从MFC到Winform几乎切换方式是一致的,找到一个容器,然后将Dialog或是UserControl塞进去就完了,不断的Add/Remove来实现切换画面。在WPF中很不适应,缺少了Panel,不知道该从何而起。
在’WPF揭秘’和’WPF in Action’中都有提到使用NavigationWIndow或是Frame来实现导航,,只要Navigate就OK了。
操作起来也就3步:
1.    新建Application,Window1默认继承Window,这里改为继承自NavigationWindow,表示支持多Page。
2.    新建Page,任意数量。
3.    然后将NavigationWindow.Source设为默认页面(Default Page)。
4.    在Click中Navigation到相应的Page即可。

如何为Page增加淡入淡出(Fade)效果
如上所示,Window1继承自NavigationWindow,那么显然抓住Navigating事件不放,做如下操作:
1.    取消当前Navigate请求,如果有当前页的前提下。
2.    淡出当前页,如果有当前页的前提下。
3.    完成淡出过程后Navigate到目标页。
4.    淡入目标页。

示例
代码下载:
3个页面如下:
1.    索引页,包括两个图标,点击分别进入相应页面。
index
2.    Page1,点击返回索引页。
Page1
3.    Page2,点击返回索引页(同上)。
page2
 
下一步
这里仅演示了先fade out接着fade in,问题是如何能够mix fade out和fade in。
参考:感谢Dr.WPF先生写的FaderFrame.cs,示例代码中保留了Dr.WPF版权。
posted @ 2009-09-27 19:17 nonocast 阅读(2197) 评论(1) 编辑 收藏

 回复 引用 查看   
#1楼 2011-11-03 08:49 李宝亨      
刚学wpf,正好用到,谢谢,收藏了!