在我的UWP应用程序中我有这种情况,我使用了两个框架。
例如主页面有一个框架(MainFrame),并在此框架中加载一个子页面,这也有一个框架(SubFrame1)并在此框架中加载第三页。
现在我想通过点击第三页上的按钮来更改MainFrame的内容。
当我使用时:
this.Frame.Navigate(typeof(FourthPage));
它从子页面(SubFrame1)加载框架中的FourthPage,但我想在MainFrame中加载FourthPage。
答案 0 :(得分: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));
}
它只是一个样本,也许你的布局不是这样,重点是你可以逐层找到父。
答案 1 :(得分:1)
主页包含:
<SplitView>
<SplitView.Pane>
</SplitView.Pane>
<SplitView.Content>
<Frame Name="MainFrame"></Frame>
</SplitView.Content>
</SplitView>
现在在“MainFrame”中导航了另一个页面:
MainFrame.Navigate(typeof(AnotherPage));
含义“MainFrame”现在是父框架,在其中,分配了另一个框架。
现在,如果我们想要导航保留在子框架中的父框架,那么我们可以通过以下方式访问它:
Frame parentFrame = Window.Current.Content as Frame;
parentFrame.Navigate(typeof(MainPage));