返回到使用 C# 在 WPF XAML 中打开的第一帧
本文关键字:一帧 XAML WPF 返回 | 更新日期: 2023-09-27 18:36:47
我正在创建WPF应用程序,该应用程序在几个上部帧中运行,每个打开的帧显示不同的数据,通过id重新加载。
如果我想返回一帧,我可以使用它:
this.NavigationService.GoBack();
但是,问题,如果我想回到第一帧,而不必按顺序向我打开的每个人收费,你可以吗?键入方法:
这。NavigationService.GoFirstFrameOpen ()
有类似的功能吗?如果没有,一个可能的解决方案?
使用 Frame.BackStack 属性。它返回一个 IEnumerable,用于枚举帧的后退导航历史记录中的条目。
您可以通过遍历可视化树来获取包含的帧。
样本:
private void Button_Click(object sender, RoutedEventArgs e)
{
var leaf = (DependencyObject)sender;
while(leaf.GetType() != typeof(Frame))
{
leaf = VisualTreeHelper.GetParent(leaf);
}
Frame f = leaf as Frame;
if (f != null)
{
JournalEntry firstItem = null;
foreach (JournalEntry item in f.BackStack)
{
firstItem = item;
break;
}
this.NavigationService.Navigate(firstItem.Source);
}
}
附加方法,如果您从页面内导航,则
可以让
Page
类具有接收 Frame 对象的参数化构造函数。您可以使用 while 循环向后移动,直到到达第一个页面条目。
使用
PageFunction
.PageFunction是一个可以返回值的页面。
WPF 导航