かなり奇妙な振る舞いを見つけました...
問題を再現する方法は次のとおりです。
- WPFアプリケーションプロジェクトを作成します。
- App.xamlファイルからStartupUriを削除します。
private void Application_Startup(object sender, StartupEventArgs e)
署名" "を使用してスタートアップイベントハンドラーをアプリに追加します- 次に、フォームをプロジェクトに追加します(右クリックして[新しいアイテムの追加]を選択します)。
- Application_Startupメソッドで、フォームオブジェクトを作成し、次のように表示します。
Form1 f1 = new Form1(); f1.ShowDialog();
- 実際のForm1で、デザイナーにボタンを追加し、ボタンにクリックイベントハンドラーを追加します。
- プロジェクトWindow1に新しいWPFウィンドウを追加します。
- 手順6で作成したForm1のボタンクリックイベントハンドラーで、WPFウィンドウの表示を作成するコード行を追加します。
Window1 w1 = new Window1(); w1.Show();
- プロジェクトを実行し、winformのボタンをクリックして、WPFウィンドウを表示します...これまでのところ正常に機能しています。
- WPFウィンドウを閉じて、winformのボタンをもう一度クリックします。今回は例外が発生するはずです。
したがって、基本的に私が行うことは、winformを表示するWPFアプリケーションを作成することです。次に、winformはWPFウィンドウを表示します。
WPFウィンドウが初めて表示されるときは、すべて正常に機能します。閉じてから再度開くと、例外が発生します。ボタンを複数回クリックして、複数のWPFウィンドウを開くこともできます。ただし、最後の1つを閉じると、例外なく別の1つを再び開くことはできません...
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/442782b1-00a1-4e2e-9cc6-ae99b6699126/で提案されているさまざまなヒントも試しましたが、役に立ちません。
なぜこうなった?