代码改变世界

WPF读书笔记:1.初识 Application and MainWindow

2008-07-01 00:12  无常  阅读(2542)  评论(0编辑  收藏  举报

System.Windows.Application是WPF应用程序最为重要和常用的类,跟踪着整个应用程序的生命周期。和winform/delphi中的application功能类似。

创建一个应用程序

wuchang.cnblogs.com

运行这个程序后,什么都没有显示。但这个程序一直运行着,没有界面,只能通过任务管理器关闭它。

wuchang.cnblogs.com

 

定义一个Window

 image

修改Main方法为

wuchang.cnblogs.com

再次运行程序,看到一空白的窗口。与Winform窗体不同的是,wpf window默认背景颜色是SystemColors.WindowColor,系统默认是白色。

wuchang.cnblogs.com

这个窗口就是应用程序的主窗口,关闭此窗口后程序结束。

再次修改Main方法:

image

程序运行后有三个窗口了:

 wuchang.cnblogs.com

此时哪个窗口是应用程序的主窗口呢?

回答:标题为“第一个实例”的窗口是应用程序的主窗口,即最先创建的窗口。

 

在winform/delphi中,应用程序的主窗口关闭程序就结束了,而wpf程序则不是这样。

如果关闭了第一个窗口,程序并没有结束,而第二个窗口则接替着成了主窗口,一直要关闭程序中的最后一个窗口后程序才结束,这是wpf默认的方式。

这个行为由Application对象的ShutdownMode属性控制着,

ShutdownMode属性为ShutdownMode 枚举类型,有三种类型可选:

ShutdownMode .OnExplicitShutdown
只有在调用Application.Shutdown()方法才能结束应用程序。

ShutdownMode .OnLastWindowClose
在应用程序最后一个窗口关闭后程序结束。也是默认的处理方式。

ShutdownMode .OnMainWindowClose
在主窗口关闭时结束程序。

此属性一般在Application.Run()前设置,如:

image

其实,你可以在程序运行的任意时间随便修改。

另外,主窗口也可以在任意时间更改,如将Main方法修改为:

wuchang.cnblogs.com

程序运行后第二个窗口即是主窗口,如果在第三个窗口中点击了鼠标,则将其置为主窗口。

出处:http://wuchang.cnblogs.com