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

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

一.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(如下图),打开文件,然后可以分别写入以下三种方式的代码,进行启动效果的调试。

 

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

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. 上面的方法,最后执行的效果,如下图。

 

时间: 2024-10-25 20:58:38

WPF入门教程系列二——Application介绍的相关文章

SeaJS入门教程系列之SeaJS介绍(一)

 这篇文章主要介绍了SeaJS入门教程,讲述了SeaJS的由来,JavaScript传统开发模式和模块化开发的对比,需要的朋友可以参考下 前言 SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载.SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的

SeaJS入门教程系列之SeaJS介绍(一)_Seajs

前言SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载.SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的JavaScript文件及对象依赖处理中解放出来,可以专注于代码本身的逻辑.SeaJS可以与jQuery这类框架完美集成.使用SeaJS可以

SeaJS入门教程系列之使用SeaJS(二)

 这篇文章主要介绍了SeaJS入门教程系列之使用SeaJS,着重介绍了SeaJS的使用方法.关键方法的使用等,需要的朋友可以参考下 下载及安装   要在项目中使用SeaJS,你所有需要做的准备工作就是下载sea.js然后放到你项目的某个位置. SeaJS项目目前托管在GitHub上,主页为 https://github.com/seajs/seajs/ .可以到其git库的build目录下下载sea.js(已压缩)或sea-debug.js(未压缩). 下载完成后放到项目的相应位置,然后在页面中

Docker入门教程(二)命令

本文讲的是Docker入门教程(二)命令,[编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker系列教程的第一篇文章中,我们了解了Docker的基础知识,知道了它是如何工作以及如何安装的.在这篇文章中,我们将学习15个Docker命令,并通过实践来学习它是如何工作的. 首先,让我们通过下面的命令来检查Docker的安装是否正确: docker info  如果没有找到这条命令,则表示

SeaJS入门教程系列之完整示例(三)

 这篇文章主要介绍了SeaJS入门教程系列之完整示例,演示了一个完整的SeaJS开发例子,需要的朋友可以参考下 一个完整的例子 上文说了那么多,知识点比较分散,所以最后我打算用一个完整的SeaJS例子把这些知识点串起来,方便朋友们归纳回顾.这个例子包含如下文件:   1.index.html--主页面. 2.sea.js--SeaJS脚本. 3.init.js--init模块,入口模块,依赖data.jquery.style三个模块.由主页面载入. 4.data.js--data模块,纯json

asp入门教程:ASP Request 简单介绍

asp入门教程:ASP Request 简单介绍,在ASP Request对象是用来获取信息的用户.它有两种方法form 与querystring的, 下面我们来看看request.from 这里是专门用于表单如. <form name=a action=? > <input name=b value='this is request.form' /> </form> asp代码如下. <% response.write request.from("b&

Java入门教程系列 – 开发环境搭建

原文http://go-learning.com/2012/05/23/java-gettingstart-1/ Java入门教程系列 – 开发环境搭建 Posted on 2012 年 5 月 23 日 by Johnny 在使用任何的计算机语言进行编程之前,你都需要搭建一个开发环境.简单的说,这个过程就是要安装一些开发 用的软件和进行相关的一些配置.每种计算机语言所需要的软件是不一样的,对于Java语言来说,你最少需要安装一个JDK (这是一个专有名称,要死记),JDK的全称叫 – Java

Java入门教程系列 – 第一个程序 “hello, world”

原文Java入门教程系列 – 第一个程序 "hello, world" Posted on 2012 年 5 月 25 日 by Johnny "Hello, World"程序指的是指在计算机屏幕上输出"Hello, World!"(意为"世界,你好!")这行字符串的计算机程序.一般来说,这是每一种计算机编程语言中最基本.最简单的程序,亦通常是初学者所编写的第 一个程序.它还可以用来确定该语言的编译器.程序开发环境,以及运行环

SQLite 创建、修改、删除表 入门教程(二)

SQLite 创建.修改.删除表 入门教程(二) 一.数据库教程定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 Trigger 等等,构成了数据库的架构 Schema. 在 SQL 语句中,专门有一些语句用来定义数据库架构,这些语句被称为"数据库定义语言",即 DDL. SQLite 数据库引擎支持下列三种 DDL 语句: CREATE ALTER TABLE DROP 其中,CREATE 语句用