WPF入门教程系列二——Application介绍
2015-05-02 09:56
666 查看
一.Application介绍
WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在。和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.cs,这有点类似于 Asp.Net WebForm,将定义和行为代码相分离。
微软把WPF中经常使用的功能都封装在 Application 类中了。 Application 类具体有以下功能:
跟踪应用程序的生存期并与之交互。
检索和处理命令行参数。
检测和响应未经处理的异常。
共享应用程序范围的属性和资源。
管理独立应用程序中的窗口。
跟踪和管理导航。
二.WPF应用程序的启动
关于如何在Visual Studio中创建一个“WPF应用程序”,前面的文章中已经说过了。请参见WPF入门教程系列一——基础。
1、在Visual Studio 2013中创建一个“WPF应用程序”,使用App.xaml文件定义启动应用程序。XAML从严格意义上说并不是一个纯粹的 XML 格式文件,它更像是一种 DSL(Domain Specific Language,领域特定语言),它的所有定义都会由编译器最后编译成代码。App.xaml文件默认内容如下图:
2、当然,如果你习惯了把启动写在代码中。你也可以跟WinForm中一样,在类中定义一个Main方法来实现对WPF应用程序的启动。
第一步:如下图,在“解决方案资源管理器”中使用鼠标左键选中App.xaml文件,然后鼠标右键,弹出“弹出菜单—》从项目中排除”,这样就在项目中去掉了我们刚才建立的App.xaml文件。
第二步:现在中添加一个新类,类名为App.cs。如下图。在“解决方案资源管理器”中使用鼠标左键选中“WpfApp1”项目,然后点击鼠标右键,弹出“弹出菜单”,按下图中所示操作。
第三步:在弹出的“添加新项”界面中,选中“类”,把名称修改为“App.cs”。如下图。
第四步:在“解决方案资源管理器”中双击App.cs(如下图),打开文件,然后可以分别写入以下三种方式的代码,进行启动效果的调试。
第一种启动应用程序的代码
第二种启动应用程序的代码
第三种启动应用程序的代码
3. 上面的方法,最后执行的效果,如下图。
WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在。和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.cs,这有点类似于 Asp.Net WebForm,将定义和行为代码相分离。
微软把WPF中经常使用的功能都封装在 Application 类中了。 Application 类具体有以下功能:
跟踪应用程序的生存期并与之交互。
检索和处理命令行参数。
检测和响应未经处理的异常。
共享应用程序范围的属性和资源。
管理独立应用程序中的窗口。
跟踪和管理导航。
二.WPF应用程序的启动
关于如何在Visual Studio中创建一个“WPF应用程序”,前面的文章中已经说过了。请参见WPF入门教程系列一——基础。
1、在Visual Studio 2013中创建一个“WPF应用程序”,使用App.xaml文件定义启动应用程序。XAML从严格意义上说并不是一个纯粹的 XML 格式文件,它更像是一种 DSL(Domain Specific Language,领域特定语言),它的所有定义都会由编译器最后编译成代码。App.xaml文件默认内容如下图:
2、当然,如果你习惯了把启动写在代码中。你也可以跟WinForm中一样,在类中定义一个Main方法来实现对WPF应用程序的启动。
第一步:如下图,在“解决方案资源管理器”中使用鼠标左键选中App.xaml文件,然后鼠标右键,弹出“弹出菜单—》从项目中排除”,这样就在项目中去掉了我们刚才建立的App.xaml文件。
第二步:现在中添加一个新类,类名为App.cs。如下图。在“解决方案资源管理器”中使用鼠标左键选中“WpfApp1”项目,然后点击鼠标右键,弹出“弹出菜单”,按下图中所示操作。
第三步:在弹出的“添加新项”界面中,选中“类”,把名称修改为“App.cs”。如下图。
第四步:在“解决方案资源管理器”中双击App.cs(如下图),打开文件,然后可以分别写入以下三种方式的代码,进行启动效果的调试。
第一种启动应用程序的代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace WpfApp1 { class App { [STAThread] static void Main() { // 定义Application对象作为整个应用程序入口 Application app = new Application(); // 方法一:调用Run方法 ,这种方式跟winform的调用一样 WindowGrid win = new WindowGrid(); app.Run(win); } } }
第二种启动应用程序的代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace WpfApp1 { class App { [STAThread] static void Main() { // 定义Application对象作为整个应用程序入口 Application app = new Application(); //指定Application对象的MainWindow属性为启动窗体,然后调用无参数的Run方法 WindowGrid win = new WindowGrid(); app.MainWindow = win; //是必须的,否则无法显示窗体 win.Show(); app.Run(); } } }
第三种启动应用程序的代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace WpfApp1 { class App { [STAThread] static void Main() { // 定义Application对象作为整个应用程序入口 Application app = new Application(); // 通过Url的方式启动 app.StartupUri = new Uri("WindowGrid.xaml", UriKind.Relative); app.Run(); } } }
3. 上面的方法,最后执行的效果,如下图。
相关文章推荐
- WPF入门教程系列三——Application介绍(续)
- WPF入门教程系列三——Application介绍(续)
- WPF入门教程系列二——Application介绍
- WPF入门教程系列四——Dispatcher介绍
- WPF入门教程系列五——Window 介绍
- WPF入门教程系列四——Dispatcher介绍
- WPF入门教程系列六——布局介绍与Canvas(一)
- WPF入门教程系列五——Window 介绍
- WPF入门教程系列六——布局介绍与Canvas(一)
- 云星数据---Scala实战系列(精品版)】:Scala入门教程017-Scala实战源码-Scala 创建对象 以及类的介绍
- 《VR入门系列教程》之6---VR硬件介绍及DK1
- WPF入门教程系列一——基础 一、 前言 最近在学习WPF,学习WPF首先上的是微软的MSDN,然后再搜索了一下网络有关WPF的学习资料。为了温故而知新把学习过程记录下来,以备后
- WPF入门教程系列九——布局之DockPanel与ViewBox(四)
- WPF入门教程系列二十一——DataGrid示例(二)
- SeaJS入门教程系列之SeaJS介绍(一)
- WPF入门教程系列(一) 创建你的第一个WPF项目
- WPF入门教程系列十一——依赖属性(一)
- WPF入门教程系列二十三——DataGrid示例(三)
- WPF入门系列教程(二) 深入剖析WPF Binding的使用方法(上)
- WPF入门教程系列(一) 创建你的第一个WPF项目