Получить обработчик для SaveFileDialog, открытого приложением

Я пытаюсь получить обработчик SaveFileDialog, который открывается нажатием кнопки моего приложения WPF. Все примеры, которые я смог найти в сети, на самом деле создают один , но мне нужно обработать тот, который уже открыт. Как мне это сделать? Приведенный ниже код всегда создает новый диалог SaveFileDialog.

        dlg.DefaultExt = "pdf"; // Default file extension
        dlg.Filter = "PDF File (*.pdf)|*.pdf|All files (*.*)|*.*"; // Filter files by extension
        dlg.FilterIndex = 2;
        dlg.InitialDirectory = "C:\\Users\\Reema.Sinha\\Downloads";
        Manager.Current.DialogMonitor.AddDialog(dlg);
        DownloadSaveButton.Click();
        DialogResult result = dlg.ShowDialog();

person Reema    schedule 05.12.2016    source источник
comment
Если я вас правильно понял, вы имеете в виду что-то вроде того, что если вы нажмете «Отмена», должно появиться всплывающее окно с запросом подтверждения.   -  person Ashish Srivastava    schedule 05.12.2016
comment
Нет. Я нажимаю кнопку загрузки, автоматически открывается диалоговое окно SaveFileDialog, и мне нужен обработчик, чтобы установить имя пути, а затем сохранить файл в формате pdf.   -  person Reema    schedule 05.12.2016


Ответы (1)


Думаю, OpenFileDialog тоже может помочь. Но я предпочитаю только SaveFileDialog. Я попробовал это и надеюсь, что это сработает и для вас:

Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.DefaultExt = "pdf"; // Default file extension
dlg.Filter = "PDF File (*.pdf)|*.pdf|All files (*.*)|*.*"; // Filter files by extension
    dlg.FilterIndex = 2;
    dlg.InitialDirectory = "C:\\Users\\Reema.Sinha\\Downloads";
    Manager.Current.DialogMonitor.AddDialog(dlg);
    DownloadSaveButton.Click();

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

  if (result == true)
  {
    // Save document
    string filename = dlg.FileName;
  }

ОБНОВЛЕНИЕ:

Используйте FolderBrowserDialog. Затем, после того как вы покажете диалоговое окно пользователю, вы можете выполнить dlg.SelectedPath.

Надеюсь, эти посты будут вам полезны.

SaveFileDialog, который позволяет выбрать папку

диалоговое окно выбора папки WPF

Диалог открытия каталога

person Ashish Srivastava    schedule 05.12.2016
comment
Я пробовал это раньше, но проблема связана с: Manager.Current.DialogMonitor.AddDialog(dlg); dlg должен реализовать IDialog, но SaveDialog никоим образом не связан с IDialog, поэтому преобразование здесь невозможно. - person Reema; 06.12.2016
comment
Я нашел SaveAsDialog, и он отлично работает. Спасибо в любом случае за помощь. - person Reema; 07.12.2016
comment
Отлично. :) загрузите ответ. Это было бы полезно для других. - person Ashish Srivastava; 08.12.2016