场景
需要根据不同的配置显示不同的窗体,如通过弹出一个MessageBox然后选择弹出其它窗口。
问题
前一个窗口关闭时,后续ShowDialog的窗口没有显示,应用直接退出。
原因
App默认的ShutdownMode=ShutdownMode.OnMainWindowClose
,因此当关闭第一个窗口时,应用将会自动即出。解决方式有以下两种:
- 方式1
this.ShutdownMode = ShutdownMode.OnExplicitShutdown;
- 方式2
将startup中所用的所有窗口预先初始化,即可解决问题。
其它
使用系统原生的MessageBox不会有问题,猜测时原生的窗口是win32窗口的原因。