WPF - 保存文件对话框

18
我正在WPF中使用SaveFileDialog将数据导出到一个由用户选择的特定位置的Excel文件。但在用户打开 SaveFileDialog 对话框后,若用户点击了取消按钮,我会得到另一个对话框,询问是否要保存对“Sheet1”所做的更改,然后显示“导出完成”,而不是取消导出。
那么我该怎么解决它呢?有没有类似于WinForms中的'DialogResult'的WPF解决方法可以处理这个问题?
4个回答

53

如果用户保存,ShowDialog方法将返回可空布尔值true,如果用户按下取消,则返回false/null。以下是一个示例MSDN代码,可供参考:

// Configure save file dialog box
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = "Document"; // Default file name
dlg.DefaultExt = ".txt"; // Default file extension
dlg.Filter = "Text documents (.txt)|*.txt"; // Filter files by extension

// Show save file dialog box
Nullable<bool> result = dlg.ShowDialog();

// Process save file dialog box results
if (result == true)
{
    // Save document
    string filename = dlg.FileName;
}

3

在WPF中,您需要使用MessageBox来在用户点击取消时打开另一个窗口。将以下代码添加到取消按钮事件中:

private void canceButton()
    {
        MessageBoxResult key = MessageBox.Show(
            "Are you sure you want to quit",
            "Confirm",
            MessageBoxButton.YesNo,
            MessageBoxImage.Question,
            MessageBoxResult.No);
        if (key == MessageBoxResult.No)
        {
            return;
        }
        else
        {
            Application.Current.Shutdown();
        }
    }

1

0

在SaveFileDialog的取消和确定按钮上,它将按照您的要求执行。

bool? DialougeResult = saveFileDialog1.ShowDialog();
    if(DialougeResult)
    {
    // your code now its cancel when click cancel button 
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接