0
爲了簡單起見,我創建了一個包含MainPage和Page2的新應用程序。 MainPage有一個導航到Page2的按鈕。還覆蓋MainPage.OnBackKeyPress:如何正確處理OnBackKeyPress?
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
if (MessageBox.Show("Quit?", "Confirm", MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
e.Cancel = true;
else
base.OnBackKeyPress(e);
}
第二頁是空的,除了覆蓋OnNavigateFrom,以模擬長時間操作時,從第二頁返回炫魅:
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
System.Threading.Thread.Sleep(1000);
base.OnNavigatedFrom(e);
}
一切正常,但是當我在第2頁,然後按Back鍵3-4次很快,然後我看到消息框彈出兩次。 我期望消息框不顯示,或至少顯示和隱藏。我的代碼有什麼問題嗎?謝謝。
我對我的應用做了一些改變:刪除Page2.OnNavigateFrom(),然後在MainPage中添加60個沒有事件處理按鈕的按鈕(只是爲了使MainPage'複雜',需要一些時間來加載)。那麼問題仍然可以重現。我怎樣才能避免這樣的問題? – wizardlee