框架导航中的UWP框架 - 如何访问父框架?
问题描述:
在我的UWP应用程序我有这种情况,我使用两个框架。框架导航中的UWP框架 - 如何访问父框架?
例如,主页面有一个框架(MainFrame)并在这个框架中加载一个子页面,这也有一个框架(SubFrame1)并在这个框架中加载第三页面。
现在我想通过点击第三页上的按钮来更改MainFrame的内容。
当我使用:
this.Frame.Navigate(typeof(FourthPage));
它加载FourthPage从子页面(SubFrame1)的框架,但我想加载FourthPage在大型机。
答
只是为了这里的例子,如果你的第三页是这样的:
<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));
}
这只是一个样本,也许你的布局不是这样,重点是你可以找到父层的层。
答
主网页有这样的:
<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));