在关闭C#WPF应用程序之前询问用户

Hoo*_*och 24 .net c# wpf events

我想在关闭申请前询问用户.我是C#.NET 4.0应用程序.我正在使用WPF.我可以在Windows窗体中执行此操作,但不能在WPF中执行.当用户想要关闭应用程序时会触发事件,消息框出现,包子无论按下哪个按钮(是或否)应用程序始终关闭.为什么?哪里出错?

它有效,但只有当用户按"X"时才有效.当用户按下Application.Current.Shutdown()时按钮; 它不起作用.

private void MainWindowDialog_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
    MessageBoxResult result = MessageBox.Show("Do you really want to do that?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Question);
    if (result == MessageBoxResult.No)
    {
        e.Cancel = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*ide 33

如果您致电,则无法取消结账活动Application.Current.Shutdown().只需调用该Window.Close()方法,这将使您有机会否决关闭操作.一旦所有程序的窗口关闭,应用程序将自动关闭.

有关更多信息,查看MSDN上的" 应用程序管理"页面.


Gus*_*nti 8

只需调用YourMainWindow.Close()并使用前面描述的Closing事件.

  • 也就是说,不要使用Application.Current.Shutdown(). (2认同)

小智 7

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (MessageBox.Show("Are you sure to exit?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
        e.Cancel = false;
    else
        e.Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)