为简单起见,我创建了一个新应用程序,其中包含 MainPage 和 Page2。MainPage 有一个按钮,用于导航到 Page2。同时覆盖 MainPage.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);
}
Page2 为空,除了重写 OnNavigateFrom,模拟从 Page2 回到 MainPage 的长时间操作:
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
System.Threading.Thread.Sleep(1000);
base.OnNavigatedFrom(e);
}
一切都很好,但是当我在第 2 页时,很快按 3-4 次返回键,然后我看到消息框弹出两次。我希望消息框不显示,或者至少显示和隐藏。我的代码有什么问题吗?谢谢。