框架导航中的 UWP 框架 - 如何访问父框架?
UWP frame in frame navigation - How to access the parent frame?
在我的 UWP 应用程序中,我使用了两个框架。
例如主页有一个框架(MainFrame)并在这个框架中加载一个子页面,这也有一个框架(SubFrame1)并在这个框架中加载第三个页面。
现在我想通过单击第三页上的按钮来更改 MainFrame 的内容。
当我使用:
this.Frame.Navigate(typeof(FourthPage));
它从子页面 (SubFrame1) 加载框架中的 FourthPage,但我想在 MainFrame 中加载 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" 中导航另一个页面:
MainFrame.Navigate(typeof(AnotherPage));
意思是 "MainFrame" 现在是父框架,在其中分配了另一个框架。
现在如果我们想在子框架中导航这个父框架,那么我们可以通过以下方式访问它:
Frame parentFrame = Window.Current.Content as Frame;
parentFrame.Navigate(typeof(MainPage));
在我的 UWP 应用程序中,我使用了两个框架。
例如主页有一个框架(MainFrame)并在这个框架中加载一个子页面,这也有一个框架(SubFrame1)并在这个框架中加载第三个页面。
现在我想通过单击第三页上的按钮来更改 MainFrame 的内容。
当我使用:
this.Frame.Navigate(typeof(FourthPage));
它从子页面 (SubFrame1) 加载框架中的 FourthPage,但我想在 MainFrame 中加载 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" 中导航另一个页面:
MainFrame.Navigate(typeof(AnotherPage));
意思是 "MainFrame" 现在是父框架,在其中分配了另一个框架。
现在如果我们想在子框架中导航这个父框架,那么我们可以通过以下方式访问它:
Frame parentFrame = Window.Current.Content as Frame;
parentFrame.Navigate(typeof(MainPage));