我在我的應用程序中有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. 從瀏覽器歷史記錄中刪除頁面
- 4. 如何在Silverlight/Windows Phone 7中清除導航歷史記錄?
- 5. 如何從Jquery Mobile的歷史記錄中刪除當前頁面?
- 6. 錄製網址導航歷史記錄
- 7. 替換或刪除歷史記錄中的頁面
- 8. 從Git歷史記錄中刪除具有歷史記錄的特定文件
- 9. 從SSH命令行歷史記錄刪除特定歷史
- 10. 如何刪除歷史記錄中的刪除和重命名?
- 11. Emacs導航位置歷史記錄
- 12. Angular2瀏覽器歷史記錄導航
- 13. 從git歷史記錄中刪除已刪除的文件
- 14. QWizard:刪除已訪問頁面的歷史記錄
- 15. 如何從歷史記錄中刪除二進制文件?
- 16. 如何從java文件中刪除SVN歷史記錄?
- 17. 如何從git存儲庫中刪除舊的歷史記錄?
- 18. 如何從mercurial的歷史記錄中刪除大文件?
- 19. 如何從歷史記錄中刪除撤銷(RevertAllInCurrentGroup?)
- 20. Silverlight導航應用程序中的導航歷史記錄
- 21. WP8確定頁面導航歷史
- 22. 刪除ASP.net中的歷史頁面
- 23. Angular4 - 從頁面歷史堆棧中刪除頁面引用
- 24. 如何在從一個ajax頁面導航到另一個簡單頁面時維護歷史記錄
- 25. git從歷史記錄中刪除目錄
- 26. 無法從Git歷史記錄中刪除目錄
- 27. 刪除模塊歷史記錄CVS
- 28. 刪除修訂歷史記錄
- 29. 刪除Github提交歷史記錄
- 30. 刪除GitHub的提交歷史記錄?
的Silverlight WP7 =創建 「加載」 事件。它會得到更少的意見與適當的標籤。 :) – 2014-06-10 22:39:31