Я обнаружил довольно странное поведение ...
Вот как воспроизвести проблему:
- Создание проекта приложения WPF.
- Удалите StartupUri из файла App.xaml.
- Добавление обработчика событий запуска в приложение с подписью "
private void Application_Startup(object sender, StartupEventArgs e)
"
- Теперь добавьте форму в проект (щелкните правой кнопкой мыши и выберите Добавить новый элемент).
- в методе Application_Startup создайте объект формы и покажите его как
Form1 f1 = new Form1(); f1.ShowDialog();
- На фактической форме Form1 добавьте кнопку в конструктор и добавьте обработчик события нажатия кнопки.
- Добавьте новое окно WPF в свой проект, Window1.
- В обработчике события щелчка кнопки Form1, созданном на шаге 6, добавьте строки кода для создания отображения окна WPF:
Window1 w1 = new Window1(); w1.Show();
- Запустите проект и нажмите кнопку на winform, чтобы показать окно WPF ... пока работает отлично.
- Закройте окно WPF и снова нажмите кнопку winform. На этот раз вы должны получить исключение.
Итак, по сути, я создаю приложение WPF, которое отображает winform. Затем winform отображает окно WPF.
При первом отображении окна WPF все работает нормально. Если он закрыт, а затем снова открыт, я получаю исключение! Я также могу открыть несколько окон WPF, нажав кнопку несколько раз. Однако после закрытия последнего я никогда не смогу открыть еще один без исключения ...
Я также попробовал различные советы, предложенные на http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/442782b1-00a1-4e2e-9cc6-ae99b6699126/, но они не помогают.
Почему это происходит?