WPF入门教程系列二——Application介绍

WPF入门教程系列二——Application介绍

iCMS 发布时间:2022-04-20 20:59

一.Application介绍

WPF和WinForm很相似,WPF与WinForm一样有一个Application对象来进行一些全局的行为和操作,并且每个Domain(应用程序域)中仅且只有一个Application实例存在。和WinForm不同的是WPFApplication默认由两部分组成:App.xaml和App.xaml.cs,这有点类似于Asp.NetWebForm,将定义和行为代码相分离。

微软把WPF中经常使用的功能都封装在Application类中了。Application类具体有以下功能:

跟踪应用程序的生存期并与之交互。

检索和处理命令行参数。

检测和响应未经处理的异常。

共享应用程序范围的属性和资源。

管理独立应用程序中的窗口。

跟踪和管理导航。

二.WPF应用程序的启动

关于如何在VisualStudio中创建一个“WPF应用程序”,前面的文章中已经说过了。请参见WPF入门教程系列一——基础。

1、在VisualStudio2013中创建一个“WPF应用程序”,使用App.xaml文件定义启动应用程序。XAML从严格意义上说并不是一个纯粹的XML格式文件,它更像是一种DSL(DomainSpecificLanguage,领域特定语言),它的所有定义都会由编译器最后编译成代码。App.xaml文件默认内容如下图:

2、当然,如果你习惯了把启动写在代码中。你也可以跟WinForm中一样,在类中定义一个Main方法来实现对WPF应用程序的启动。

第一步:如下图,在“解决方案资源管理器”中使用鼠标左键选中App.xaml文件,然后鼠标右键,弹出“弹出菜单—》从项目中排除”,这样就在项目中去掉了我们刚才建立的App.xaml文件。

第二步:现在中添加一个新类,类名为App.cs。如下图。在“解决方案资源管理器”中使用鼠标左键选中“WpfApp1”项目,然后点击鼠标右键,弹出“弹出菜单”,按下图中所示操作。

第三步:在弹出的“添加新项”界面中,选中“类”,把名称修改为“App.cs”。如下图。

第四步:在“解决方案资源管理器”中双击App.cs(如下图),打开文件,然后可以分别写入以下三种方式的代码,进行启动效果的调试。

第一种启动应用程序的代码

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;

namespaceWpfApp1

{classApp

{

[STAThread]staticvoidMain()

{//定义Application对象作为整个应用程序入口

Applicationapp=newApplication();//方法一:调用Run方法,这种方式跟winform的调用一样

WindowGridwin=newWindowGrid();

app.Run(win);

}

}

}

第二种启动应用程序的代码

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;

namespaceWpfApp1

{classApp

{

[STAThread]staticvoidMain()

{//定义Application对象作为整个应用程序入口

Applicationapp=newApplication();

//指定Application对象的MainWindow属性为启动窗体,然后调用无参数的Run方法

WindowGridwin=newWindowGrid();

app.MainWindow=win;//是必须的,否则无法显示窗体

win.Show();

app.Run();

}

}

}

第三种启动应用程序的代码

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;

namespaceWpfApp1

{classApp

{

[STAThread]staticvoidMain()

{//定义Application对象作为整个应用程序入口

Applicationapp=newApplication();//通过Url的方式启动

app.StartupUri=newUri("WindowGrid.xaml",UriKind.Relative);

app.Run();

}

}

}

3.上面的方法,最后执行的效果,如下图。


iCMS - iCMS 是一套采用 PHP 和 MySQL 构建的高效简洁的内容管理系统,为您的网站提供一个完美的开源解决方案

法律声明:本站内容均为网友上传,网站举办方负责审核和监督,如存在版权或非法内容,欢迎举报,我们将尽快予以删除。

Copyright © 2008-2022 Powered by iCMS V8.0.0.