ページ間を移動すると、戻る/進む、または「ホームページ」ページに戻ることができる機能があることがわかります。ただし、必要なのは、戻ることができるようにすることですが、ユーザーがこれ以上アクセスできないようにする必要があるページをスキップすることです。私は周りを検索して、次のものを見つけました:http ://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/3819f389-3bfc-4c59-a919-272927fc9229
GetNavigationStackを使用しようとしましたが、シリアル化できず、NavigationParameterとして渡したオブジェクトが原因で失敗し続けます。タプルを使用して2つのパラメーターを渡す必要がありますが、これをシリアル化できないため、ナビゲーションスタックで編集してページを手動で削除することができません。
次に、このWinRTを見つけました-ナビゲーション履歴からページを無視または削除する方法と、ページをスキップする場合に設定できるブール値を含めることができると思いました
(LayoutAwarePage.cs
すべての画面が継承するクラス、Visual Studioによって生成される)ではprotected bool CanGoBackToThisPage { get; set; }
、このページにアクセスしたくない場合に設定できるものを追加しましたが、これには問題があります。現在のページで何かを行うまで、ページに再度アクセスできます。私はあなたがのようなことをすることができるとは思わないpreviousFrame.CanGoBackToThisPage = true
。また、Frame
アクセスできるオブジェクトは(私が思うに)実際のページオブジェクトにはアクセスできませんが、代わりにいくつかのサマリーオブジェクトがあり、このブール値をそのサマリーオブジェクトに取り込む方法がわかりません。
ナビゲーションスタックから前/現在のページを削除する簡単な方法を知っている人はいますか?これは本当に一般的な問題のように思われるので、Microsoftが私たちにそれを行う方法を提供していないと思うのに苦労しています。
ありがとう