在頁面之間導航時,我發現有些功能可以讓您返回/前進或進入「主頁」頁面。但是,我需要的是能夠返回,但跳過用戶不應再訪問的頁面。我周圍搜索,發現以下內容:http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/3819f389-3bfc-4c59-a919-272927fc9229在Windows 8中關閉導航堆棧的頁面應用程序
我嘗試使用GetNavigationStack,但由於無法序列化和對象作爲NavigationParameter傳遞,因此它保持失敗。我不得不使用Tuple傳遞2個參數,但是這不能被序列化,所以我無法讓導航堆棧編輯它並手動刪除頁面。
然後我發現這個WinRT - How to ignore or delete page from navigation history,我想我可以包括可設置一個布爾值,如果頁面被跳過
在LayoutAwarePage.cs
(類所有的屏幕繼承,由Visual Studio生成的)我說protected bool CanGoBackToThisPage { get; set; }
如果你不想訪問這個頁面,可以設置它,但也有一個問題,因爲有些時候我不知道你是否希望能夠再次訪問一個頁面,直到你在當前頁面上做了一些事情。我不認爲你可以做類似previousFrame.CanGoBackToThisPage = true
的事情。此外,您有權訪問的Frame
對象沒有(我認爲)可以訪問實際的頁面對象,但是有一些摘要對象,而我不知道如何將該布爾值存入該摘要對象。
有誰知道一個簡單的方法來從導航堆棧中刪除前一頁/當前頁面?這似乎是一個非常常見的問題,所以我很難想到微軟並沒有給我們一些方法。
感謝
試圖手動編輯導航歷史記錄是一個壞主意。您可能只需導航一個,然後檢查是否應該繼續向後導航。 – mydogisbox