.NET WPF教程(2)——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)——基础

  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();
        }
    }
}
  1. 上面的方法,最后执行的效果,如下图。
    在这里插入图片描述
    续(3):https://blog.youkuaiyun.com/qq_43434300/article/details/100168895
目录 WPF体系结构 .......................................................................................................................................................... 3 WPF应用程序管理 .................................................................................................................................................. 5 一、WPF应用程序由System.Windows.Application 类进行管理 ................................................................. 5 二、创建WPF应用程序 ................................................................................................................................. 5 三、应用程序关闭 ........................................................................................................................................... 6 四、Application 对象的事件 ........................................................................................................................... 7 五、WPF应用程序生存周期 .......................................................................................................................... 9 WPF窗体 ................................................................................................................................................................ 10 一、窗体类 ..................................................................................................................................................... 10 1、XAML文件....................................................................................................................................... 10 2、后台代码文件 ................................................................................................................................... 10 二、窗体的生存周期 ......................................................................................................................................11 1、显示窗体 ............................................................................................................................................11 2、关闭窗体 ........................................................................................................................................... 12 3、窗体的激活 ....................................................................................................................................... 12 4、窗体的生存周期 ............................................................................................................................... 12 三、其他窗体相关的属性、方法、事件 ..................................................................................................... 15 四、定义异形窗体 ......................................................................................................................................... 16 StackPanel、WrapPanel、DockPanel 容器 .......................................................................................................... 19 一、StackPanel ............................................................................................................................................... 19 1、可以使用Orientation 属性更改堆叠的顺序 ................................................................................... 19 2、设置控件的属性,调整控件的显示................................................................................................ 20 二、WrapPanel ................................................................................................................................................ 20 三、DockPanel ................................................................................................................................................ 21 Grid UniformGrid 容器 ........................................................................................................................................ 22 一、Grid .......................................................................................................................................................... 22 二、使用GridSplit分割 ................................................................................................................................ 23 三、UniformGrid ............................................................................................................................................ 25 Canvas、InkCanvas布局 ....................................................................................................................................... 27 一、Canvas ..................................................................................................................................................... 27 二、InkCanvas ................................................................................................................................................ 27 WPF对控件其类型的继承方式如下 .................................................................................................................... 29 WPF控件内容模型 ................................................................................................................................................ 32 一、ContentControl模型 ............................................................................................................................... 35 二、HeaderedContentControl模型 ................................................................................................................ 36 三、ItemsControl模型 ................................................................................................................................... 38 1、使用ItemSource 属性 ....................................................................................................................... 38 2、使用Items属性 ................................................................................................................................ 40 四、HeaderedItemsControl模型 .................................................................................................................... 42 Panel Decorator TextBlock 内容模型 .................................................................................................................. 44 一、Panel内容模型 ....................................................................................................................................... 44 本文来自网络,由大胡子制作.版权归原作者所有.如果你有 wpf 的好资料可以联系我 QQ:249872349,Email:BigBeard@126.com 二、Decorator内容模型 ................................................................................................................................ 45 三、TextBlock 模型 ........................................................................................................................................ 46 四、TextBox 模型 ........................................................................................................................................... 49 依赖项属性和路由事件 ......................................................................................................................................... 50 一、依赖项属性(Dependency Property ....................................................................................................... 50 1、依赖项属性与CLR 包装属性 ......................................................................................................... 50 2、使用由依赖项属性提供的属性功能................................................................................................ 51 3、自定义依赖项属性及重写依赖项属性 ............................................................................................ 52 二、路由事件(RoutedEvent)..................................................................................................................... 53 键盘输入、鼠标输入、焦点处理 ......................................................................................................................... 56 一、键盘类和键盘事件 ................................................................................................................................. 56 二、鼠标类和鼠标事件 ................................................................................................................................. 57 三、焦点处理 ................................................................................................................................................. 60 1、键盘焦点: ....................................................................................................................................... 60 2、逻辑焦点 ........................................................................................................................................... 61 3、键盘导航 ........................................................................................................................................... 61 4、焦点事件 ........................................................................................................................................... 61 WPF命令 ................................................................................................................................................................ 63 一、命令: ..................................................................................................................................................... 64 二、命令源 ..................................................................................................................................................... 65 三、命令目标 ................................................................................................................................................. 66 四、命令绑定 ................................................................................................................................................. 67 WPF资源 ................................................................................................................................................................ 70 一、什么是资源 ............................................................................................................................................. 70 二、资源的定义及XAML中引用 ................................................................................................................ 70 三、XAML解析资源的顺序 ......................................................................................................................... 74 四、静态资源(StaticResource)和动态资源(DynamicResource) ........................................................ 77 五、不同类型的资源 ..................................................................................................................................... 81 1、程序集资源。 ................................................................................................................................... 81 2、对象资源 ........................................................................................................................................... 82
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值