System.Windows.Application是WPF应用程序最为重要和常用的类,跟踪着整个应用程序的生命周期。和winform/delphi中的application功能类似。
创建一个应用程序
运行这个程序后,什么都没有显示。但这个程序一直运行着,没有界面,只能通过任务管理器关闭它。
定义一个Window
修改Main方法为
再次运行程序,看到一空白的窗口。与Winform窗体不同的是,wpf window默认背景颜色是SystemColors.WindowColor,系统默认是白色。
这个窗口就是应用程序的主窗口,关闭此窗口后程序结束。
再次修改Main方法:
程序运行后有三个窗口了:
此时哪个窗口是应用程序的主窗口呢?
回答:标题为“第一个实例”的窗口是应用程序的主窗口,即最先创建的窗口。
在winform/delphi中,应用程序的主窗口关闭程序就结束了,而wpf程序则不是这样。
如果关闭了第一个窗口,程序并没有结束,而第二个窗口则接替着成了主窗口,一直要关闭程序中的最后一个窗口后程序才结束,这是wpf默认的方式。
这个行为由Application对象的ShutdownMode属性控制着,
ShutdownMode属性为ShutdownMode 枚举类型,有三种类型可选:
ShutdownMode .OnExplicitShutdown
只有在调用Application.Shutdown()方法才能结束应用程序。ShutdownMode .OnLastWindowClose
在应用程序最后一个窗口关闭后程序结束。也是默认的处理方式。ShutdownMode .OnMainWindowClose
在主窗口关闭时结束程序。
此属性一般在Application.Run()前设置,如:
其实,你可以在程序运行的任意时间随便修改。
另外,主窗口也可以在任意时间更改,如将Main方法修改为:
程序运行后第二个窗口即是主窗口,如果在第三个窗口中点击了鼠标,则将其置为主窗口。
出处:http://wuchang.cnblogs.com