WPF ShowDialog возвращается немедленно - PullRequest
4 голосов
/ 11 мая 2010

Иногда, когда я вызываю ShowDialog в окне OpenFileDialog в WPF, диалоговое окно немедленно закрывается с возвращаемым значением false.

Я вызываю ShowDialog в ответ на событие нажатия кнопки. Я могу воспроизвести эту проблему, используя пример кода для OpenFileDialog на MSDN:

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

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

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

Проблема возникает периодически, когда я запускаю свое решение в режиме отладки из Visual Studio 2008 SP1. Это довольно раздражает.

Это известная проблема? Есть ли обходные пути?

1 Ответ

3 голосов
/ 16 февраля 2014

Проблема в том, что OpenFileDialog нужно окно, чтобы присоединиться. Если окно отсутствует, оно сразу же возвращается с «ложью» в качестве результата.

Попробуйте что-нибудь вроде этого:

var ofd = new OpenFileDialog();
ofd.ShowDialog(Application.Current.MainWindow);

Поздравления Кристиан http://www.wpftutorial.net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...