2016-10-10 162 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));