2015-09-08 98 views
0

我正在做一個Windows應用商店的應用程序,我試圖創造一些按鈕,幫助頁面之間的導航頭...從另一個調用頁面導航方法 - XAML

我的問題是我創建了一個MasterPage.xaml(這是從每個頁面使用的,所以我不需要每次都複製和粘貼樣式),並在裏面創建了一些按鈕及其點擊事件。

private void HomePage_Click(object sender, RoutedEventArgs e) 
{ 
    this.Frame.Navigate(typeof(Pages.HomePage)); 
} 

當我嘗試從另一個頁面點擊按鈕會發生的NullReferenceException和檢查this.Frame值它說,它是

如何使用從另一個頁面調用導航方法?

我tryed搜索在網絡上,但我沒能找到類似的東西...

編輯

App.xaml.cs我不得不改變一些爲宗旨值做出母版...

我的代碼:

var rootFrame = Window.Current.Content as MasterPage; 
if (rootFrame == null) 
{ 
    rootFrame = new MasterPage(); 
    if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) 
    { 
     // TODO: Load state from previously suspended application 
    } 
    Window.Current.Content = rootFrame; 
} 

回答

0

來獲得當前幀的最佳方式是:

Frame rootFrame = Window.Current.Content as Frame; 

你應該在你的母版,其中「rootFrame」是你的頁面的一個屬性的構造函數中添加這行代碼。

+0

仍然沒有工作... _rootFrame_仍然_NULL _...難道我做錯了什麼? 我在類中添加了_private Frame rootFrame_; _rootFrame = Window.Current.Current作爲Frame_在構造函數中 –

+0

Window.Current.Current?這是「內容」而不是「當前」到最後。在App.xaml.cs中,默認情況下應該有這一行(在「OnLaunched」事件中),如果該幀爲空,則應該初始化一個Frame。檢查它是否在那裏。 –

+0

雅,它是內容,我只是沒能在評論中寫:d 爲宗旨,以使母版我不得不改變App.xaml.cs改變rootframe,我已經和編輯我的代碼 –

相關問題