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