c# - 如何忽略导航历史中的同一页面

标签 c# win-universal-app windows-10-universal

无论如何我们可以忽略导航堆栈中的相同页面条目, 实际上我的 UWP 应用程序中有以下情况,这就是用户从一个页面导航到另一个页面的方式

主页->第1页->第2页->

现在从 Splitview 用户点击第 1 页,所以堆栈是这样的

主页 -> 第 1 页 -> 第 2 页 -> 第 1 页

我想要的是,如果第 1 页已经加载,我想删除第 1 页和该页面上方的所有框架,

堆栈应该是这样的:

主页 -> 第 1 页

在 android 中,我知道我们可以设置标志“ClearTop”,以便它自动对同一页面执行清理,UWP App 是否有类似的东西?

最佳答案

在当前帧上,您可以检查 BackStack 集合,并删除任何条目

这是您可以使用和改编的片段:)

     Frame rootFrame = Window.Current.Content as Frame;

        if (rootFrame.CanGoBack)
        {
            // Check if we are on the entry page and try to go back
            var backTypePage = rootFrame.BackStack[rootFrame.BackStackDepth - 1];

            if (this.EntryPage != null && backTypePage.SourcePageType == this.EntryPage)
            {
                e.Handled = false;
                rootFrame.BackStack.Clear();
            }
            else
            {
                e.Handled = true;
                rootFrame.GoBack();
            }
        }

关于c# - 如何忽略导航历史中的同一页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36912136/

相关文章:

c# - ComboBox.SourceUpdated 事件未触发

c# - 如何检查 OnNavigatedTo 是否由 Windows Phone 8.1 通用应用程序中的后退按钮触发?

c# - 从本地xampp mysql-database获取数据

c# - Windows 10 WebView InvokeScript 不工作

c# - 如何将 Linq 扩展方法重写为委托(delegate)?

c# - 读取 Main Program.cs 中的 appsettings.json

c# - SmtpClient - 发送到不同的域

c# - 项目创建后立即向 XAML 设计器抛出 NullReference

javascript - UWP 应用程序 - HTML5/JS 中的 InkCanvas 和 InkToolbar

c# - 未处理的异常 : The size of the state manager setting value has exceeded the limit