按“X”按钮时允许取消

时间:2012-06-12 17:17:44

标签: c# wpf xaml

当用户在主窗口中按下“X”时,出现此对话框:

 -- Save Changes --------------------------
|                                          |
|  Do you want to save changes?            |
|                                          |
|                                          |
|    |Don't Save|      |Cance|   |Save|    |
|__________________________________________|

我无法实现“取消”按钮。在用户点击取消后,我无法弄清楚如何告诉主窗口不要关闭。我通过窗口的“关闭”命令/方法提示用户使用此对话框。

2 个答案:

答案 0 :(得分:10)

在结束事件中,您需要将事件属性Cancel设置为true。

    void DataWindow_Closing(object sender, CancelEventArgs e)
    {
        MessageBox.Show("Closing called");

        // If data is dirty, notify user and ask for a response
        if (this.isDataDirty)
        {
            string msg = "Data is dirty. Close without saving?";
            MessageBoxResult result = 
              MessageBox.Show(
                msg, 
                "Data App", 
                MessageBoxButton.YesNo, 
                MessageBoxImage.Warning);
            if (result == MessageBoxResult.No)
            {
                // If user doesn't want to close, cancel closure
                e.Cancel = true;
            }
        }
    }

答案 1 :(得分:5)

调用的处理程序方法有一个表示事件args的参数(类型为CancelEventArgs,让我们称之为e。在处理程序中设置e.Cancel = true以防止默认行为。