C# 返回到使用C在wpf xaml中打开的第一个帧#
我正在创建一个WPF应用程序,它在几个上部帧中运行,每个打开的帧显示不同的数据,并通过id重新加载 如果我想返回一帧,我可以使用:C# 返回到使用C在wpf xaml中打开的第一个帧#,c#,wpf,xaml,frame,back,C#,Wpf,Xaml,Frame,Back,我正在创建一个WPF应用程序,它在几个上部帧中运行,每个打开的帧显示不同的数据,并通过id重新加载 如果我想返回一帧,我可以使用: this.NavigationService.GoBack(); 但是,问题是,如果我想回到第一帧,而不必向我按顺序打开的每个人收费,你可以吗? 类型a方法: this.NavigationService.GoFirstFrameOpen() 有类似的功能吗?如果没有,可能的解决方案是什么?使用属性。 它返回一个IEnumerable,您可以使用该IEnumera
this.NavigationService.GoBack();
但是,问题是,如果我想回到第一帧,而不必向我按顺序打开的每个人收费,你可以吗?
类型a方法:
this.NavigationService.GoFirstFrameOpen()
有类似的功能吗?如果没有,可能的解决方案是什么?使用属性。
它返回一个IEnumerable,您可以使用该IEnumerable枚举帧的反向导航历史记录中的条目
您可以通过遍历VisualTree获得包含的帧
样本:
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);
}
}
附加方法如果您是从页面内导航,则
页面
类有一个参数化的构造函数来接收框架对象页面功能
。是一个可以返回值的页面您希望历史记录反映您返回的内容,还是您导航到了第一页?也就是说,在返回到第一页之后,是否要继续前进以进入第二页?如果是这样的话,我想你得把它们都翻一遍。如果没有,你可以保留对第一个页面的引用,然后导航到该页面。我不会回去做所有的框架,我会回到用户打开的第一个页面。可能吗?@Mr.Developer您的问题解决了吗?如果是,请标记正确答案,如果不是,请告诉问题。问题是我在帧内,我无法用backback方法回忆起这一点