WPF和WinRT中的导航问题

简介:

一、Frame、Page框架的相关介绍

1、Frame类:


继承层次结构

System.Object
  
System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Media.Visual
        System.Windows.UIElement
          System.Windows.FrameworkElement
            System.Windows.Controls.Control
              System.Windows.Controls.ContentControl
                System.Windows.Controls.Frame

命名空间:System.Windows.Controls

程序集:PresentationFramework(在PresentationFramework.dll中)


Frame是能够定位到并显示内容的内容控件。Frame可以在其他内容中承载,与其他控件和组件。


Frame控件导航到 HTML内容时,内部Frame控件实例化本机 webbrowserActivex控件。WPF通过对函数控件启用安全功能在浏览器 Activex控件。应用于的功能控制对 XBAP和独立应用程序不同。某些应用程序应通过附加功能控制防止恶意内容运行。有关更多信息,请参见中的浏览器控件和功能控制在安全性(WPF)的和WebBrowserControl Overviews and Tutorials部分。 


内容可以导航到通过设置与URISource属性所需内容的。另外,可以使用Navigate方法的一下重载之一,内容可以导航到:Navigate(Uri),Navigate(Uri,Object)


如果内容导航到由URI时,Frame返回包含内容的对象。或者,内容可以导航到使用接受一个对象的Navigate方法重载:Navigate(Object),Navigate(Object,Object)


导航的生存期可以通过以下活动来跟踪:Navigating,Navigated,NavigationProgress,NavigationFailed,NavigationStopped,LoadCompleted,FramentNavigation


不是导航发生的所有事件都引发;引发事件集的方式取决于发生的类型的导航(内容或内容片段),这个导航完成(取消,停止或失败)。




2、Page


继承层次结构


System.Object
  
System.Web.UI.Control
    System.Web.UI.TemplateControl
      System.Web.UI.Page
        
System.Web.UI.DataVisualization.Charting.ChartHttpHandler
        System.Web.UI.MobileControls.MobilePage

命名空间:  System.Web.UI




二、 WPF、WP8 Silverlight 中的导航实现

1、在WPF中的导航:

 

windowwindow:

Window window1=new Window();

window1.Show();

 

windowpage:

Navigation Windowwindow1=new NavigationWindow();

window1.Source=newUri(“Page1.xaml“UriKind.Relative);

window1.Show();

 

pagepage:

NavigationService.GetNavigationService(this).Navigate(newUri(“Page2.xaml”,UriKind.Relative));

 

 

2、在Silverlight(包括WP8开发的时候选择银光框架时)中的导航:         

 (sliver 的意思是切开,切片) (silver才是银色)


this.NavigationService.Navigate(newUri(“/Page1.xaml”,UriKind.Relative);       

WPF中反斜杠是可有可无的,但是WP8中必须要的。

 

三、浅谈WPF、Silverlight和WinRT 


WPF(WPF4)中,导航主要是NavigationService类型,FramePageNavigationWindow类型都有NavigationService属性,同时Frame类型还有一些方法比如Navigate就是直接调用其背后的NavigationService的相应方法。

 

Frame继承自ContentControl,Page继承自FrameworkElement

 

Navigate方法可以传入UriObject参数,同时支持第二个Object代表额外数据。然后再Frame.Navigated事件中,通过NavigationEventArgsExtraData属性来获取额外的数据。但是WPF中的导航数据传递对于开发者来说很头疼。 

 

winRT中,没有了NavigationServiceNavigationCacheMode等在Silverlight中都有的。同时Page还引入了一些新的元素,比如winRT中特有的AppBar。最后winRT中的Page同时引用Frame对象,这个可以说是NavigationService的代替吧,因为如果PageFrame都不引用,那么Page本身便不具备任何主动导航功能了。


WP8中使用银光貌似只是权宜之计?银光也逐渐被微软放弃,随着应用商店的合并,winRT框架也更能够在多种设备中游刃有余。

目录
相关文章
|
区块链 C#
WPF如何实现一个漂亮的页签导航UI
原文:WPF如何实现一个漂亮的页签导航UI      最近看到一个比较漂亮的UI主界面,该UI是用左边的页签进行导航,比较有特色,就想着尝试用WPF来实现一下。经过一番尝试,基本上将UI设计图的效果用WPF程序进行了实现。
2079 0
|
前端开发 C#
silverlight,WPF动画终极攻略之番外 3D切换导航篇(Blend 4开发)
原文:silverlight,WPF动画终极攻略之番外 3D切换导航篇(Blend 4开发) 这篇介绍的是3D导航,点击图标,页面360°翻转的效果!有什么不足的欢迎大家指出来。 1.新建一个usercontrol,命名为menu. 2.按照下图设置一下属性。
1221 0
|
C#
潜移默化学会WPF(绚丽篇)--热烈欢迎RadioButton,改造成功,改造成ImageButton,新版导航
原文:潜移默化学会WPF(绚丽篇)--热烈欢迎RadioButton,改造成功,改造成ImageButton,新版导航 本样式 含有  触发器 和 动画    模板  ,多条件触发器,还有布局   本人博客园地址  http://www.
1615 0
|
C#
WPF MvvmLight简单实例(1) 页面导航
原文:WPF MvvmLight简单实例(1) 页面导航 实现了那些功能,先看看截图:   操作描述: 在程序运行后,点击“Load”按钮,页面会加载PageOne,点击PageOne页面中的“Next”按钮即可进入PageTwo页面, 点击PageTwo页面中的“Next”即可进...
1451 0
|
C# Shell 缓存
从PRISM开始学WPF(八)导航Navigation?
原文:从PRISM开始学WPF(八)导航Navigation? 0x6Navigation Basic Navigation Prism中的Navigation提供了一种类似导航的功能,他可以根据用户的输入,来刷新UI。
1409 0
|
C# 容器
WPF笔记(1.2 Navigation导航)——Hello,WPF!
原文:WPF笔记(1.2 Navigation导航)——Hello,WPF!这一节是讲导航的。看了一遍,发现多不能实现,因为版本更新了,所以很多旧的语法不支持了,比如说,不再有NavigationApplication,仍然是Application,TextBlock容器的TextWrap属性改为TextingWrap,StartupUri指向"Page1.xaml"。
809 0
|
1月前
|
C# 开发者 Windows
基于Material Design风格开源、易用、强大的WPF UI控件库
基于Material Design风格开源、易用、强大的WPF UI控件库
|
5月前
|
C#
浅谈WPF之装饰器实现控件锚点
使用过visio的都知道,在绘制流程图时,当选择或鼠标移动到控件时,都会在控件的四周出现锚点,以便于修改大小,移动位置,或连接线等,那此功能是如何实现的呢?在WPF开发中,想要在控件四周实现锚点,可以通过装饰器来实现,今天通过一个简单的小例子,简述如何在WPF开发中,应用装饰器,仅供学习分享使用,如有不足之处,还请指正。
66 1
|
9月前
|
C# Windows
WPF技术之图形系列Polygon控件
WPF Polygon是Windows Presentation Foundation (WPF)框架中的一个标记元素,用于绘制多边形形状。它可以通过设置多个点的坐标来定义多边形的形状,可以绘制任意复杂度的多边形。
480 0
|
9月前
|
C# Windows
WPF技术之RichTextBox控件
WPF RichTextBox是Windows Presentation Foundation (WPF)中提供的一个强大的文本编辑控件,它可以显示富文本格式的文本,支持多种文本处理操作。
355 0