Silverlight实例教程 - Navigation导航框架开篇
Silverlight导航框架概述
在传统导航功能中,经常会出现以下几个技术特征:
1. 能够记录浏览历史信息;当用户点击某个链接后,跳转到下一个功能页面,而导航功能能够记录访问浏览过的信息链接,通过“前进”或“后退“按钮能够轻松的返回到上一个访问页面;
在Silverlight 3之前的版本,Silverlight没有特定的导航框架,项目中页面之间的切换是通过修改RootVisual布局容器的内容而实现的。在后文将详细介绍早期页面导航的方法和步骤。
{
this.RootVisual = new MainPage();
}
在Silverlight 3版本中, 微软推出Navigation Framework导航框架,同时推出Silverlight Navigation应用模板,帮助开发人员创建Silverlight导航应用。 在导航框架中,不仅实现了传统导航功能,而且加入了许多独特的新特性。例如,地址映射,浏览器集成导航等。为了加大Navigation Framework的灵活性,在Silverlight 4中,增加新的属性和接口允许开发人员创建扩展导航功能。在随后的几篇中,我们将详细讲解这些导航功能应用和实例。
Silverlight导航框架应用方案
Silverlight项目内部导航是导航框架主要功能之一,导航框架提供Frame和Page控件类控制Silverlight项目页面承载以及页面导航切换功能。其中Frame类如同一个页面容器控件,用于协助导航页面的切换和显示;而Page类用于承载具体内容页面。
2. 应用项目外部导航;
应用项目外部导航是指导航框架支持应用程序外部资源的直接访问链接。 Silverlight导航框架支持开发人员通过EnableNavigation属性设置是否允许外部导航功能,同时支持HyperlinkButton控件导航页面到应用外部资源。例如:
<HyperlinkButton NavigateUri="http://www.silverlight.net" Content="访问Silverlight官方网站" TargetName="_new" />
Silverlight是基于Web浏览器的富应用插件,对于其页面导航切换,可以被集成到浏览器导航功能中。通过设置Silverlight导航框架JournalOwnership属性可以指定是否将当前应用与Web浏览器导航相集成,而在默认情况下,JournalOwership属性值为Automatic,表示当前框架为顶级框架时,将于浏览器导航集成在一起;而当属性值设置为OwnsJournal时,则表示禁止浏览器集成导航功能,当前应用导航框架内部保留导航日志。
虽然Silverlight导航框架提供强大的应用内部,外部以及浏览器集成导航功能,但是在实际项目中,仍旧存在不灵活的弊端。为了使Silverlight导航框架更加灵活多变,在Silverlight 4中,导航框架提供一个新的属性和接口ContentLoader和INavigationContentLoader,允许开发人员创建应用扩展导航功能。
Silverlight导航框架优势
Silverlight导航框架优势可总结如下:
2. 导航框架能够记录历史浏览信息,通过浏览器“前进”或“后退”按钮,可以轻松访问上一次访问的页面;
3. 能够支持URL传参功能,特别是在Web应用项目中,在导航过程中,使用URL进行传递参数是最常用的功能;例如:从浏览用户信息页面,跳转到编辑用户信息页面,可以通过URL传递用户ID到编辑页面,是其能够通过该ID读取到数据库中指定用户信息;
4. 支持深度链接(Deep Link),可通过链接访问不同页面状态下的应用;
曾经有开发人员询问过,什么是Deep Link?这里给出简单的解释:
更多Silverlight实例教程系列:
Silverlight实例教程系列 - Silverlight Validation验证实例
Silverlight实例教程系列 - Silverlight Out-of-Browser实例
Silverlight实例教程系列 - Expression Blend实例中文教程
欢迎大家加入“专注Silverlight”QQ技术群,欢迎大家加入一起学习讨论Silverlight&WPF&Widnows Phone开发技术。
22308706(一群) 超级群500人
37891947(二群) 超级群500人
100844510(三群) 高级群200人
32679922(四群) 超级群500人
23413513(五群) 高级群200人
32679955(六群) 超级群500人
61267622(七群) 超级群500人
88585140(八群) 超级群500人
128043302(九群 企业应用开发推荐群) 高级群200人
101364438(十群) 超级群500人
68435160(十一群 企业应用开发推荐群)超级群500人