在Windows 8中,我对从一个页面导航到另一个页面的两种方法感到困惑。
First one:
使用最初在App.Xaml.cs类中定义的框架,如下所示。
public static Frame RootFrame;
protected override void OnLaunched(LaunchActivatedEventArgs args)
{
RootFrame = Window.Current.Content as Frame;
}就像..。
App.RootFrame.Navigate(typeof(Page1));第二 :-这是一种简单的导航方式。
this.Frame.Navigate(typeof(page1));问题:-这两种类型有什么区别吗?如果有,请告诉我。
发布于 2014-03-05 18:15:26
这些都是相同的方法,实际上是在同一个对象上操作。应用程序对象创建一个承载页面的Frame对象(在基本应用程序模板中,当应用程序第一次启动时,请注意,如果rootFrame为null,它会更新一个Frame并将其设置为Window.Current.Context)。
从这一点开始,您将使用同一个Frame对象的导航函数。当您导航到Page1时,Frame将Page1.Frame属性设置为自身,因此在Page1中,this.Frame指向与App.RootFrame相同的对象(本质上是“父”链接)。
因此,Window.Current.Content托管一个Frame对象,该对象托管Page,每个Page都有一个指向该Frame的指针,它们可以使用该指针命令Frame导航到其他Page。
注意,Window.Current.Content本身是一个可设置的UiElement。这意味着它在技术上可以承载Frame以外的UI。例如,这可以用来制作一些铬,它本身承载了一个Frame,这是应用程序的实际内容(比如旧的HTML )。在一种情况下,我这样做是为了创建一个开发人员控制台,该控制台可以从我的应用程序的每个页面轻松调用/可用(因为它存在于承载单个页面的框架级别之上)。
https://stackoverflow.com/questions/22093250
复制相似问题