文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发软件工程用WPF构建强大的用户体验
精品推荐
特别推荐
·Tomcat中用web.xml控制Web应用详解
·计算机网络工程课程讲解
·COM, COM+ and .NET 的区别
·ISO9000:2000 质量管理八大原则(1)
·Struts框架及其在Web开发中的应用
·献给汇编初学者-函数调用堆栈变化分析
·质量管理的十三项步骤和八项原则(1)
·质量管理体系审核全解(1)
·WinCE.Net平台下电力巡检仪数据同步研究与实现
·黑盒测试和白盒测试
·黑客程序设计
·软件自动化测试流程
·详述RPG游戏引擎的设计原理
热点TOP10
·Visual Studio 2005集成开发环境图解
·Linux BOOTLOADER全程详解(Arm S3C2410)
·清除window 2000/XP系统中的无用设备的驱动程序
·gsoap中文文档(8.1.1)
·如何为嵌入式开发建立交叉编译环境
·ISO9000:2000 质量管理八大原则
·Vista新技术:WCF开发指南之构建服务
·UML类图详解(1)
·ISO9000:2000 质量管理八大原则(1)
·商场荧屏导购展板系统软件需求说明书
·Tomcat中用web.xml控制Web应用详解
·使用ADS1.2进行嵌入式软件开发
·VC中利用多线程技术实现线程之间的通信
·编写质量手册
·软件工程-软件目的需求开发与管理
·软件项目质量管理经验谈
·.NET 数据访问架构指南
·献给汇编初学者-函数调用堆栈变化分析
·软件与并发巨变 不得不面对的革命
·管理信息系统需求调研分析指南

用WPF构建强大的用户体验

日期:2007年8月16日 作者: 查看:[大字体 中字体 小字体]


  当用户点击XAML页面上的超链接的时候,超链接要求NavigationWindow导航到特定的URI。NavigationWindow就载入URI所指向的页面,从而实现寄宿它。被载入页面的URI位置会存储在NavigationWindow.Source属性中,被载入页面的内容在NavigationWindow.Content属性中。

  当内容发生改变的时候,就进行导航,并且把之前的内容添加到导航历史中。这个过程也是由NavigationWindow管理的。导航UI为导航操作提供了两个按钮和一个下拉列表。请注意,你不仅仅可以使用NavigationWindow的默认样式,使用Windows Presentation Foundation支持的多种样子,你还可以轻易地建立自己的导航UI。

  到目前为止,我为你介绍了如何使用标记来配置需要导航的超链接URI。但是,有时候你无法宣告式地决定导航。例如,如果希望查看订单,你就必须建立一个页面实例,并把自己希望查看的订单传递给它。这是无法宣告式地完成的。作为代替,你必须使用代码,如图7所示。

  图7:用代码导航

HomePage.xaml (markup)
<Page ... >
...
<Hyperlink Click="viewHyperlink_Click">
View
</Hyperlink>
...
</Page>

HomePage.xaml.cs (codebehind)
public partial class HomePage : Page
{
 void viewHyperlink_Click(object sender, RoutedEventArgs e)
 {
  // 查看订单
  ViewOrderPage page = new ViewOrderPage(GetSelectedOrder());
  NavigationWindow window = (NavigationWindow)this.Parent; // Don't do this!
  window.Navigate(page);
 }

 Order GetSelectedOrder()
 {
  return (Order)this.ordersListBox.SelectedItem;
 }
 ...
}
  当超链接被点击的时候,它的Click事件处理程序获取当前选中的订单,在实例化的过程中把它传递给ViewOrderPage,并调用它的宿主NavigationWindow的Navigate方法,接着它把页面作为对象而不是URI进行导航。

  你可能发现获取宿主NavigationWindow的引用有些古怪。这是必然的,因为页面没有任何可用于了解自己所寄宿的内容的外部信息。页面可以使用自己的Parent属性来检测宿主,但是Parent返回的是DependencyObject引用,而不是特定宿主类型的强类型(strongly typed)引用。因此,把Parent转换为特定的类型意味着页面知道谁可以寄宿它。但是,你会发现页面可以拥有多种宿主类型。因此,如果你打算让多种宿主类型寄宿自己的页面,你就需要一个与宿主无关的编程执行导航的方法。

  导航服务(NavigationService)

  在Windows Presentation Foundation中,页面和页面宿主之间的分离是由NavigationService实现的,它实现了导航引擎的基本功能,包括导航、导航历史、导航生命周期、内容、为部分内容查找导航服务。如下代码显示了NavigationService类型的基本成员。NavigationWindow并没有真正地实现自己的导航引擎;它是用自己的NavigationService实例来实现的。

  代码:NavigationService类型的基本成员

sealed class NavigationService : IContentContainer
{
 // 导航
 public bool Navigate(Uri source); // 导航到URI
 public void Refresh(); // 重新导航到当前内容
 public void StopLoading(); // 停止当前的导航 // 导航历史
 public bool CanGoBack { get; } // Content in back nav. history?
 public bool CanGoForward { get; } // Content in forward nav. history?
 public void GoBack(); // Go to previous content in nav. history
 public void GoForward(); // Go to next content in nav. history

 // 导航的生命周期
 // 导航请求
 public event NavigatingCancelEventHandler Navigating;
 // 导航到内容
 public event NavigatedEventHandler Navigated;
 // 内容载入了
 public event LoadCompletedEventHandler LoadCompleted;
 // 导航错误

上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页 




上一篇:XAML开发入门之XAML的五大元素

下一篇:XAML开发入门之附加属性和绑定属性

用WPF构建强大的用户体验 相关文章:
·XP用户:教你实用50招
·神不知鬼不觉地更换Win XP用户密码
·Java图形用户界面设计
·Dreamweaver MX 2004做ASP程序(4)用户注册系统
·免费申请QQ(腾迅专门为国外用户提供)
·Windows Vista 32位16国多语言用户界面包
·Windows XP用户:教你实用50招
·外网用户如何访问内网FTP服务器
·在jsp中用bean和servlet联合实现用户注册、登录
·如何阻止局域网用户使用P2P软件下载
用WPF构建强大的用户体验 相关软件:
·公司企业网站管理系统模板功能强大版
·飘易多用户日记本(蓝色幻想) v1.5
·虎鹰网络美化多用户留言本
·同花顺TopView(赢富)深度决策证券行情分析软件(T+1)体验版 V7.40.72
·闪客留言簿(单用户版)
·Lhgb 多用户留言版系统
·互动调查多用户投票
·Recover My Files(强大数据恢复工具)V3.98.5813 汉化版
·商易单用户商城 v1.0
·飞越单用户首页智能连接系统

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot