Windows 8导航中的困惑



我对Windows8中从一个页面导航到另一个页面的两种方式感到困惑。

第一个:-

使用最初在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));

问题:-这两种类型有什么不同吗?如果有,请告诉我。

它们是相同的方法,实际上是在同一个对象上操作的。您的应用程序对象创建了一个承载页面的Frame对象(在基本应用程序模板中,当应用程序首次启动时,请注意,如果rootFrame为null,它会更新一个Frame并将其设置为Window.Current.Context)。

从那时起,您将使用相同Frame对象的导航功能。当导航到Page1时,FramePage1.Frame属性设置为自身,因此在Page1中,this.Frame指向与App.RootFrame相同的对象(本质上是"父"链接)。

因此,Window.Current.Content托管一个Frame对象,该对象托管Pages。每个Page都有一个指向该Frame的指针,它们可以使用该指针命令该Frame导航到其他Pages。

注意,Window.Current.Content本身是可设置的UiElement。这意味着从技术上讲,它可以托管除Frame之外的UI。这可以用来(例如)制作一些chrome,它本身托管了一个Frame,这是你应用程序的实际内容(就像旧的HTMLiFrames)。在一个案例中,我这样做是为了创建一个开发人员控制台,该控制台可以从我的应用程序的每个页面轻松调用/使用(因为它存在于托管各个页面的框架之上)。

相关内容

  • 没有找到相关文章