当一个WPF应用程序启动时,先会实例化一个全局的唯一的Application。如果开发人员熟悉Windows Form编程,会知道在SystemWindowsForm命名空间中有一个Application类,用于控制整个

应用程序的运行,WPF的Application扮演了与之相同的角色,该类将用于追踪应用程序打开的窗口。在应用程序打开或关闭时,能够出发相应的应用程序事件

  应用程序声明周期

    Application 类是一个单件类,为UI组件和WPF应用程序的创建与执行提供服务,Application类将贯穿WPF应用程序的始终,当应用程序开始时,SystemWindowsApplication

类将被会创建,谭厚会触发各种不同的应用程序事件,单该应用程序退出时,Application 对象被释放,应用程序终止。

  创建Application对象

    尽管在va 2012中,不需要手工去创建一个Application,但是掌握Application对象的创建过程对于以后的开发是非常有用的,下面分步骤介绍手动差U年间Application应用程序的过程

    1.打开vs 创建一个新的WPF项目,命名空WPFApplication 为了手动穿件一个Application对象,必须先手动清楚vs 项目模板自动生成的App.xaml文件

    2.右键项目名称,在弹出的快捷菜单中选择“添加” ——“类”命令,将新创建的类命令为start.cs。

    3.在start.cs文件中,添加一下代码

using System;
using System.Collections.Generic;
using System.Windows;
using System.Text; namespace WpfApplication7
{
public class start
{
[STAThread]
public static void Main()
{
Application my = new Application(); //创建一个Application对象
MainWindow myn = new MainWindow(); //MainWindow对象,作为应用程序的主窗口
myn.Title = "这是应用程序的主窗口";
my.Run(myn); }
}
}

  4.最后还必须指定应用程序的入口点为Start类,右键解决方案资源管理器 中的项目名称,在弹出的快捷菜单中选择“属性” 命令。在启动对象下拉列表框中选择"WPFApplication OnStart.cs"选项类

  5.现在可以按下F5键启动应用程序,手动创建的Application将被创建并贯穿应用程序的始终。

现在分析上面的代码,在Main方法的声明中,使用[STAThread]特性进行修饰,这是必须的。

Application全局应用程序类的更多相关文章

  1. WPF 10天修炼 第三天- Application全局应用程序类

    Application对象 当一个WPF应用程序启动时,首先会实例化一个全局唯一的Application对象,类似于WinForm下的Application类,用于控制整个应用程序,该类将用于追踪应用 ...

  2. asp.net配置全局应用程序类 巧妙达到定时生成静态页面

    //在项目里添加一个"全局应用程序类(Global Application Class)",在里面写这样的代码: public class Global : System.Web. ...

  3. 全局应用程序类(Global.asax)

     注:该部分参考的园区的“积少成多”的 <ASP.NET MVC中的Global.asax文件> . 1.Global.asax文件介绍 global.asax这个文件包含全局应用程序事件 ...

  4. 找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.应用程序类必 须扩展javafx.application.Application”

    用eclipse写代码的时候,写了一个简单的程序,编译的时候突然出现“错误: 在类 com.test.demo 中找不到 main 方法, 请将 main 方法定义为: public static v ...

  5. 错误: 在类 Main 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.application.Application

    错误: 在类 Main 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args)否则 JavaFX 应用程序类必须扩展ja ...

  6. 错误: 在类中找不到 main 方法, 请将 main 方法定义为: &#160; &#160;public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.application.Application 。

    昨天在eclipse编写JAVA程序时,遇到一个问题: 错误: 在类中找不到 main 方法, 请将 main 方法定义为:    public static void main(String[] a ...

  7. Thinkphp源码分析系列(三)– App应用程序类

    // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO ...

  8. 错误 在类中找不到main方法请将main方法定义为 public static void main String args否则JavaFX应用程序类必须扩展javafx-ap

    最近在使用eclipse编写java程序时遇到这样一个问题: 错误在类中找不到main方法,请将main方法定义为 public static void main(String[] args)否则 J ...

  9. 错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx.ap

    最近在使用eclipse编写java程序时遇到这样一个问题: 错误在类中找不到main方法,请将main方法定义为 public static void main(String[] args)否则 J ...

随机推荐

  1. 4.Python的版本

    Python2: 英文支持没问题,中文报错,默认编码:ascii码 显示中午需要添加代码在首行:# -*- encoding:utf -8 -*- 用户交互  raw_input python2 里还 ...

  2. Windows 64位操作系统的ODBC

    我的操作系统是windows server 2008 R2 X64,系统自带两个版本的ODBC管理器,在"运行"中输入下面内容分别调出他们: X64: C:\windows\sys ...

  3. NOIP simulation

    NOIP 模拟赛Day 1题目名称LGTB 玩扫雷LGTB 学分块LGTB 打THD英文代号mine divide thd时限1 秒1 秒1 秒输入文件mine.in divide.in thd.in ...

  4. ie7间隙问题

    正常浏览器显示,如谷歌浏览器: ie7浏览器效果如图: html代码: <ul> <li class="current"><a href=" ...

  5. SP16580 QTREE7 - Query on a tree VII(LCT)

    题意翻译 一棵树,每个点初始有个点权和颜色(输入会给你) 0 u:询问所有u,v路径上的最大点权,要满足u,v路径上所有点颜色相同 1 u:反转u的颜色 2 u w:把u的点权改成w 题解 Qtree ...

  6. 使用concat做字符串拼接和数据迁移

    作用: 解决一开始数据库建立不合理造成的字段冗余,从而提取部分字段,数据迁移.拼接字符串的功能. 格式: concat(字段1,'间隔符',字段2....) concat_ws('间隔符',字段1,字 ...

  7. 参照跟老男孩学linux运维搭建nagios实验小结

        nagios效果示例 http://192.168.0.236/nagios       用户名:hong     密码:123   一. 服务端安装准备   1. 更新源 cd /etc/y ...

  8. 来自Ch大学时期的第一份随笔!

    首先,还是挺开心的!因为在大学时间总算可以脱离一点高中时期的感觉,不用再上交纸质作业(这也是我为什么要选计算机专业的原因).其次就是,大学生活总算开始有一些不一样了!学习了近两年程序语言的我们,总算可 ...

  9. centos的用户的基本操作

    :一:查看当前系统中的用户账号 grep bash /etc/passwd 二:利用root用户(超级管理员给普通用户修改密码)--------  root用户可以修改其他所有人的密码,且不需要验证 ...

  10. leetcode 4 - binary search

    注意: 1)需要保证nums1 的长度比 nums2 的长度小:(否则vector指针会越界) 2)  当分割线(partition)在首或尾时,用INT_MIN 和 INT_MAX 代替. 思路: ...