2016-10-10 200 views
1

在我的UWP應用程序我有這種情況,我使用兩個框架。框架導航中的UWP框架 - 如何訪問父框架?

例如,主頁面有一個框架(MainFrame)並在這個框架中加載一個子頁面,這也有一個框架(SubFrame1)並在這個框架中加載第三頁面。

現在我想通過點擊第三頁上的按鈕來更改MainFrame的內容。

當我使用:

this.Frame.Navigate(typeof(FourthPage)); 

它加載FourthPage從子頁面(SubFrame1)的框架,但我想加載FourthPage在大型機。

回答

2

只是爲了這裏的例子,如果你的第三頁是這樣的:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <Button Content="Navi from parent" Click="Button_Click" /> 
</Grid> 

然後在按鈕的點擊事件中,你可以找到你的MainFrame這樣的:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    var grid = this.Frame.Parent as Grid; 
    var page = grid.Parent as SubFramePage; 
    var mainframe = page.Parent as Frame; 
    mainframe.Navigate(typeof(FourthPage)); 
} 

這只是一個樣本,也許你的佈局不是這樣,重點是你可以找到父層的層。

0

主網頁有這樣的:

<SplitView> 
    <SplitView.Pane> 
    </SplitView.Pane> 
    <SplitView.Content> 
     <Frame Name="MainFrame"></Frame> 
    </SplitView.Content> 
</SplitView> 

現在,另一頁是「大型機」內導航:

MainFrame.Navigate(typeof(AnotherPage)); 

意義「大型機」現在是父框架和內它,另一架被分配。

現在,如果我們想瀏覽這個父框架停留在子框架,那麼我們可以通過以下方式訪問它:

Frame parentFrame = Window.Current.Content as Frame; 
parentFrame.Navigate(typeof(MainPage));