当前位置: 首页 > news >正文

WPF教程(二)--Application WPF程序启动方式

1.Application介绍

WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在。和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.cs,这有点类似于 Asp.Net WebForm,将定义和行为代码相分离。
微软把WPF中经常使用的功能都封装在 Application 类中了。 Application 类具体有以下功能:

  1. 跟踪应用程序的生存期并与之交互。
  2. 检索和处理命令行参数。
  3. 检测和响应未经处理的异常。
  4. 共享应用程序范围的属性和资源。
  5. 管理独立应用程序中的窗口。
  6. 跟踪和管理导航。

2.WPF应用程序的启动方式

1.使用程序自身App.xaml文件定义启动WPF应用程序启动点

XAML从严格意义上说并不是一个纯粹的 XML 格式文件,它更像是一种 DSL(Domain Specific Language,领域特定语言),它的所有定义都会由编译器最后编译成代码。

App.xaml文件默认内容如下图:
这里写图片描述

 2、通过创建一个自定义类(类内定义Main方法--特性STAThread)来实现WPF程序启动:
第一步:去除原有App.xaml文件--如下图,在“解决方案资源管理器”中使用鼠标左键选中App.xaml文件,然后鼠标右键,弹出“弹出菜单—》从项目中排除”,这样就在项目中去掉了我们刚才建立的App.xaml文件。

这里写图片描述

第二步:现在中添加一个新类(WPF程序启动点),类名为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();}}
}

以上三种方法都可以使WPF程序启动窗口运行成功

http://www.lryc.cn/news/59886.html

相关文章:

  • snmp 自定义子代理mib库
  • 一文说透安全沙箱技术
  • Java多线程基础面试总结(二)
  • NS32F407VGT6 NS32F407VET6软硬件通用STM32F407VGT6 407VET6
  • Openstack: network: ovs: dpif/show 实例分析:interface
  • 必要的项目管理软件因素
  • 大学刚毕业,用10000小时,走进字节跳动拿了offer
  • docker 安装 redis
  • Ceph常见问题
  • Android---Jetpack之Paging
  • gensim.models.word2vec() 参数详解
  • 光栅和矢量图像处理SDK:Graphics Mill 11.7Crack
  • 阿里云的客服 锻炼你心性的 一种方式 !!!
  • Linux常用的网络命令有哪些?快速入门!
  • PMP认证价值在哪?这个证书有什么用?
  • 一条更新语句的执行流程又是怎样的呢?
  • promise异步编程指南
  • 20230411----重返学习-网易云音乐首页案例-git远程仓库
  • Ansys Zemax | 模拟 AR 系统中的全息光波导:第二部分
  • 常用Git命令
  • 新手程序员被职场PUA的时候正确的化解姿势
  • LINUX_kali学习笔记
  • 第十天面试实战篇
  • YML是一种数据存储格式
  • 笔记:Java关于轻量级锁与重量级锁之间的问答
  • 有哪些通过PMP认证考试的心得值得分享?
  • 【unity learn】【Ruby 2D】角色发射飞弹
  • C++模板基础(九)
  • 【剑指 Offer】(1)
  • 每日一题 leetcode1026 2023-4-18