Reputation: 153
I found some rather strange behavior...
Here is how to replicate the problem:
private void Application_Startup(object sender, StartupEventArgs e)
"Form1 f1 = new Form1(); f1.ShowDialog();
Window1 w1 = new Window1(); w1.Show();
So, essentially what I do is create a WPF application that displays a winform. Then, the winform displays a WPF Window.
The first time the WPF window is displayed, everything works fine. If it is closed, and then re-opened, I get the exception! I can also open up multiple WPF windows by clicking the button multiple times. Once the last one is closed, however, I can never open another one again without the exception...
I have also tried the various tips suggested at http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/442782b1-00a1-4e2e-9cc6-ae99b6699126/ but those don't help.
Why is this happening?
Upvotes: 5
Views: 2743
Reputation: 2519
The default Wpf applicationshutdown behavior (specified on the "Application" tab in project properties in VS or using the ShutdownMode attribute in Application.Xaml) is "On Last Window Close". This means that when you close the Wpf window you create, Wpf shuts down the application framework so any subsequent window creations will throw an exception.
You can avoid this problem by setting the Shutdown mode to "On explicit shutdown" ("OnExplicitShutdown" in Xaml). You will then need to manually call Application.Current.Shutdown explicitly when you want the app to terminate (e.g. when the winforms form is closed).
Upvotes: 10