我在我的應用程序中有3頁。頁面#2導航回頁面#1並轉發到頁面#3。我怎樣才能做到這一點,所以從頁面#3返回導航會跳過頁面#2並直接轉到#1?如何從導航歷史記錄中刪除頁面?
回答
我最終結合了頁面#2和#3在一個頁面。當我需要第2頁時,我使用導航參數來啓動第2頁內容可見的頁面,當我完成第3頁時,我只是隱藏了#2內容。
編輯:在芒果,有一個NavigationService.RemoveBackEntry()函數,確切地做什麼需要。
this.NavigationService對我來說總是「空」,你怎麼解決這個問題? – Jonny 2011-08-10 04:59:27
@Jonny把它放在頁面加載的事件中 – EaterOfCode 2013-06-09 21:13:14
而非網頁#2特別導航頁#1考慮使用此代碼: -
NavigationService.GoBack();
有沒有辦法直接從網頁#3頁#1去,而無需通過網頁#2去。
然而,您可以在頁面#2中處理OnNavigatedTo
,並且如果來自頁面#3,則發出另一個呼叫到NavigationService.GoBack()
。
喜歡的東西:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
if (comingFromPage3)
{
NavigationService.GoBack();
}
base.OnNavigatedTo(e);
}
有如果從3#頁面來,你可以跟蹤各種方式。我很想用一個全局變量來表示這一點(在第3頁中設置,並在第2頁中檢查)。
如果您決定使用簡單的跟蹤頁面導航到的次數(即第二次導航頁面時必須從#3返回),請注意頁面#2時發生的墓碑現象或者頁面#3被顯示。
這有效,但頁面#2閃爍瞬間 - 我不高興。 – 2010-10-05 05:48:42
如果您正在使用硬件後退按鈕,那麼沒有沒有直接的方法來做到這一點。
您可以隨時使用導航方法直接進入第一頁。
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.RelativeOrAbsolute));
這將讓你到第一頁,但它也會將第3頁添加到後退堆棧。
在WPF中,您始終可以使用RemoveBackEntry()方法從後端堆棧中清除項目,但不幸的是,它不適用於Silverlight中的手機。
我建議overiding後退按鈕按鍵直接在那裏你希望他們去用戶:
保護覆蓋無效OnBackKeyPress(System.ComponentModel.CancelEventArgs E) { NavigationService.Navigate(新的URI(」 /MainPage.xaml「,UriKind.Relative)); }
這導致編寫你自己的導航;)一旦你應用了這種模式,你需要爲每個後退導航進行維護。 – 2011-07-13 17:44:38
您現在可以直接從背面堆棧中移除頁面。看到這個線程信息!
你應該爲你的頁面
private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
{
try { while (NavigationService.RemoveBackEntry() != null) ; }
catch (System.NullReferenceException ex) { }
}
- 1. 如何從瀏覽器歷史記錄中刪除頁面?
- 2. 從瀏覽器歷史記錄中刪除頁面
- 3. 如何在Silverlight/Windows Phone 7中清除導航歷史記錄?
- 4. 如何從Jquery Mobile的歷史記錄中刪除當前頁面?
- 5. 替換或刪除歷史記錄中的頁面
- 6. 從Git歷史記錄中刪除具有歷史記錄的特定文件
- 7. 從SSH命令行歷史記錄刪除特定歷史
- 8. Angular2瀏覽器歷史記錄導航
- 9. Emacs導航位置歷史記錄
- 10. QWizard:刪除已訪問頁面的歷史記錄
- 11. 如何從歷史記錄中刪除撤銷(RevertAllInCurrentGroup?)
- 12. 如何從git存儲庫中刪除舊的歷史記錄?
- 13. 如何從mercurial的歷史記錄中刪除大文件?
- 14. 如何從java文件中刪除SVN歷史記錄?
- 15. 如何從歷史記錄中刪除二進制文件?
- 16. Silverlight導航應用程序中的導航歷史記錄
- 17. 刪除ASP.net中的歷史頁面
- 18. Angular4 - 從頁面歷史堆棧中刪除頁面引用
- 19. 無法從Git歷史記錄中刪除目錄
- 20. git從歷史記錄中刪除目錄
- 21. 刪除瀏覽器歷史記錄
- 22. 如何在eclipse中刪除gerrit中的提交歷史記錄?
- 23. 刪除瀏覽器歷史記錄中的上一頁網址
- 24. 如何從當前頁面以外的背面堆棧中刪除所有歷史記錄?
- 25. 如何在eclipse中刪除啓動配置歷史記錄?
- 26. 如何刪除jQuery Mobile RC2中的URL歷史記錄?
- 27. 如何在xcode中刪除資料庫結帳歷史記錄?
- 28. 如何清除堆棧歷史記錄?
- 29. JQTouch - 無需將頁面添加到歷史記錄即可向前導航
- 30. 在頁面頂端導航到創建歷史記錄創建鏈接
的Silverlight WP7 =創建 「加載」 事件。它會得到更少的意見與適當的標籤。 :) – 2014-06-10 22:39:31