gpt4 book ai didi

c# - 在 Windows 8 应用程序中从导航堆栈弹出页面

转载 作者:太空狗 更新时间:2023-10-29 20:13:58 24 4
gpt4 key购买 nike

在页面之间导航时,我看到有一些功能可以让您返回/前进或返回“主页”页面。但是,我需要的是能够返回但跳过用户不应再访问的页面。我四处搜索,发现以下内容:http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/3819f389-3bfc-4c59-a919-272927fc9229

我尝试使用 GetNavigationStack,但由于无法序列化和我作为 NavigationParameter 传递的对象,它一直失败。我必须使用元组来传递 2 个参数,但这无法序列化,因此我无法让导航堆栈对其进行编辑并手动删除页面。

然后我找到了这个 WinRT - How to ignore or delete page from navigation history并认为我可以包含一个 bool 值,如果要跳过该页面,则可以设置该值

LayoutAwarePage.cs(所有屏幕继承的类,由 Visual Studio 生成)中,我添加了 protected bool CanGoBackToThisPage { get;放; } 如果你不想访问这个页面,可以设置它,但是这也有一个问题,因为有时我不知道你是否想再次访问一个页面,直到你做了一些事情在当前页面上。我认为您无法执行类似 previousFrame.CanGoBackToThisPage = true 的操作。此外,您有权访问的 Frame 对象(我认为)无法访问实际的页面对象,而是访问一些摘要对象,我不知道我将如何获得它 bool 值到该摘要对象中。

有谁知道从导航堆栈中删除上一个/当前页面的简单方法?这似乎是一个非常普遍的问题,所以我很难相信微软没有给我们一些解决方法。

谢谢

最佳答案

好吧,我不知道为什么我在发布问题之前没有想到它。也许我只是累了。

我只是调用了两次 Frame.GoBack() 然后导航到我想去的页面:

// If the user presses back we don't want them to visit this page or the previous page they were on so remove them from the navigation stack
Frame.GoBack();
Frame.GoBack();

// Go to the detail page
this.Frame.Navigate(typeof(GroupDetailPage), mGroup);

我想我认为调用 GoBack() 实际上会使页面动画到前一个页面,但事实并非如此

关于c# - 在 Windows 8 应用程序中从导航堆栈弹出页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14047054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com