2014-02-28 69 views
1

我感到困惑在Windows瀏覽從一個網頁到另一個的雙向8迷茫中的Windows 8導航

第一個: - 使用在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)); 

問題: - 有什麼不同在這兩種類型中,如果是,請讓我知道。

回答

2

這些都是同樣的方法,實際上是對同一個對象進行操作。您的應用程序對象創建一個承載頁面的Frame對象(在基本應用程序模板中,當應用程序第一次啓動時,請注意,如果rootFrame爲空,它將通知Frame並將其設置爲Window.Current.Context)。

從這一點開始,您正在使用同一個Frame對象的導航功能。當您導航到Page1時,FramePage1.Frame屬性設置爲自身,因此在Page1中,this.Frame指向與App.RootFrame(實質上是「父」鏈接)相同的對象。

因此,Window.Current.Content擁有一個Frame對象,並且該對象主機Page s。每Page有一個指針回Frame,他們可以用它來命令該Frame導航到其他Page s。

請注意,Window.Current.Content本身是一個SETTABLE UiElement。這意味着它可以在技術上託管除Frame之外的用戶界面。這可以用於(例如)製作一些Chrome自己託管的Frame,這是您應用的實際內容(如舊的HTML iFrame)。爲了創建一個開發者控制檯,我很容易在應用程序的每個頁面上調用/使用開發者控制檯(因爲它存在於託管單個頁面的框架的高於水平)。