WPF - SaveFileDialog - PullRequest
       3

WPF - SaveFileDialog

16 голосов
/ 16 ноября 2011

Я использую SaveFileDialog в WPF для экспорта в файл Excel при определенной локации, выбранной пользователем. Но между тем, когда SaveFileDailog открывается, пользователь нажимает на Cancel button в диалоговом окне, затем я получаю другое диалоговое окно с надписью "Do you want to save changes you made to 'Sheet1'?" и затем "Export completed" вместо отмены экспорта.

Так, что я должен сделать, чтобы заняться этим? Есть ли в WPF что-то вроде 'DialogResult', такое же, как в winForms?

Ответы [ 4 ]

50 голосов
/ 16 ноября 2011

SaveFileDialog вернет истину, если пользователь сохранен (метод ShowDialog возвращает обнуляемое значение bool), и вернет ложь / ноль, если пользователь нажал кнопку отмены. Ниже приведен пример кода 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 голосов
/ 16 ноября 2011

Вам нужно использовать MessageBox в WPF, чтобы открыть другое окно, когда пользователь нажимает кнопку «Отмена». Добавьте следующий код к событию кнопки отмены: -

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 голос
/ 16 ноября 2011

Вы должны использовать Свойство DialogResult для использования результатов диалога в WPF.Для получения дополнительной информации об использовании dialogresult в WPF см. Диалоги WPF и DialogResult

0 голосов
/ 17 апреля 2017

Будет выполнено, как вы хотите при отмене и ок. Кнопка SaveFileDialog

bool? DialougeResult = saveFileDialog1.ShowDialog();
    if(DialougeResult)
    {
    // your code now its cancel when click cancel button 
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...