在Windows Phone 7的按下WP7知道,有沒有辦法,如果在真實導航頁面按下回知道嗎?我知道我們可以在當前頁面中攔截,但是我需要在我正在導航的頁面中知道。即如果有兩頁說第一頁和第二頁,則在第二頁按下後退按鈕。我需要知道是否在第一頁按下了後退按鈕。我需要在第1頁上的後退按鈕上運行一些內容。當返回鍵在「導航到」
回答
這是一種黑客,但你可以做到以下幾點;在每個頁面上覆蓋OnBackkeyPress
事件。在事件處理程序中添加以下代碼:
PhoneApplicationService.Current.State["isbacknav"] = true;
然後,在OnNavigatedTo
事件處理程序的每一頁,檢查State
字典是否包含該條目。
bool isbacknav = false;
if(PhoneApplicationService.Current.State.ContainsKey("isbacknav")) {
isbacknav = (bool)PhoneApplicationService.Current.State["isbacknav"];
PhoneApplicationService.Current.State["isbacknav"] = false;
// or
// PhoneApplicationService.Current.State.Remove("isbacknav");
}
在每個頁面,您可以覆蓋OnBackKeyPress
事件來檢測返回鍵被按下。
在這第二頁,你可以設置一個全局標誌或發送郵件到第一頁。
頁面無法知道打開/顯示的最後一頁是什麼。你會讓你自己。
可悲的是我不認爲有內置的方式來做到這一點。
,當你告訴OnNavigatingFrom那麼事件參數包括NavigationMode - http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigatingcanceleventargs.navigationmode(v=vs.95)
然而,當你被告知的OnNavigatedTo那麼事件參數不給你這些信息。
我認爲最簡單的解決方法可能是在你的App類添加一個處理NavigationService.Navigating
- 你可以緩存NavigationMode那裏。然而,全面測試這是有可能是什麼代碼獲取的問題,什麼樣的順序 - 再加上有可能與是否當用戶從手機的主頁或從其他應用程序導航回您的網頁此代碼是正確調用問題
有一個很好的解釋NavigationService.Navigating
在http://wildermuth.com/2010/10/11/Architecting_WP7_-_Part_1_of_10_Navigation_Framework
我有完全相同的問題。你可以看到答案here
我不想重新加載數據,如果我導航回到我已加載數據的頁面。最後,我不得不使用標誌來確定我是否已經加載數據。
您可以隨時在App類(App.xaml.cs)中定義一個bool變量/ s。 它們可以由任何頁面通過以下方法
在App類
public bool backVariable=false;
在第1頁的Page1.xaml訪問。CS 全局或以任何方法
App thisApp=Application.Current as App;
那麼在哪裏使用
thisApp.backVariable
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (e.NavigationMode == System.Windows.Navigation.NavigationMode.Back)
...
}
- 1. 當bean返回對象時導航
- 2. getExtras()返回導航
- 3. 導航到具體的UIViewController當返回按鈕被按下
- 4. 導航控制器返回到上方導航控制器
- 5. 返回導航到上一個片段
- 6. 片段。 ActionBar返回導航
- 7. 輸入/返回DataGridView導航
- 8. iPhone導航返回按鈕
- 9. WP7:導航兩次返回
- 10. SAPUI5導航並返回
- 11. IOS導航返回事件
- 12. php返回導航問題
- 13. 的Android返回導航
- 14. WebBrowser控件導航返回
- 15. 觸發FluidMoveBehavior返回導航
- 16. 返回導航在iphone應用程序
- 17. WP7 NullReferenceException在導航上返回
- 18. 在導航欄中返回1步?
- 19. EF查詢不返回導航屬性的外鍵值
- 20. 使用蘋果鍵盤上的返回按鈕導航
- 21. 返回導航後不需要的鍵盤
- 22. 離子2側菜單和註銷和返回鍵導航
- 23. pygame選擇菜單導航使用箭頭鍵和返回
- 24. 區分導航上的返回鍵按下
- 25. Jquery移動導航堆棧當註銷並返回登錄
- 26. 向上導航刷新加載器,但返回導航不
- 27. 使用MVVM-Light刷新導航返回導航
- 28. 導航欄是可見的,當我導航回主視圖
- 29. 回到導航控制器
- 30. modalviewcontroller導航回到mainviewcontroller
這實際上比公認的答案更好地訪問布爾變量。這是在Windows Phone 7.0中可用還是在7.1/Mango中引入? – 2012-02-15 18:14:10
此外,您可能希望將答案放在代碼塊中,以便閱讀。我想但我不能編輯它。 – 2012-02-15 18:23:40
當NavigationService.GoBack()被調用時,這個NavigationMode也是true。如果你只想要硬件按下使用接受的答案。 – ShawnFeatherly 2012-08-01 21:06:05