Не совсем решение, но идея:
Попробуйте использовать ShowDialog(Window)
-подпись.У меня никогда не было проблем, как вы описали, и я всегда использую упомянутую подпись.Возможно, есть проблема с автоматическим определением владельца.
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.Filter = "Supported Types (*.xml)|*.xml";
Nullable<bool> result = dlg.ShowDialog(Window.GetWindow(this));
if (result == true)
{
Другой вариант - использовать диалоговое окно Win-Forms.Однако это имеет недостаток загрузки соответствующей сборки.Но если вы не откроете диалог при запуске приложения, я думаю, что это не должно быть большой проблемой.
Я бы также посмотрел, что может предотвратить запуск обработчика событий .IMO, более вероятно, что обработчик событий никогда не будет вызван, чем проблема с OpenFileDialog.