WPF-01默认程序结构

WPF应用程序启动项

创建一个WPF应用程序,系统为我们自动生成了App.xaml和一个普通的MainWindow.xaml窗体文件。.

App.xaml 和cs 文件文件如下:<Application x:Class="Example_01.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   xmlns:local="clr-namespace:Example_01" StartupUri="MainWindow.xaml">  <Application.Resources></Application.Resources></Application>

public partial class App : Application{}

Application的StartupUri属性: 当Application启动时,会获取StartupUri属性指向的UI并展示。像Winform和Asp.Net Core 应用程序启动都Main方法,这里并没有找到程序入口点Main方法,这是因为WPF框架自动替我们执行Main方法,我们打开obj文件夹下的debug文件夹,我们发现App.g.cs 文件:

WPF 系列-01默认程序结构

看到这个文件我相信大家都应该了解WPF应用程序是如何启动    

Application 类是应用程序的一个实例,是单例模式,在整个应用程序域内只有一个实例,可以通过 App.Current属性来获取到该实例。Application有几个比较重要的事件我们做一下介绍:

  • Startup 事件:应用程序启动时触发
  • Activated 事件:应用程序窗体激活时触发
  • Deactivated 事件:应用程序窗体从激活状态变为非激活触发
  • Exit事件:应用程序退出时触发

WPF 系列-01默认程序结构

Activated和Deactivated演示:

标签化语言

WPF 系列-01默认程序结构

wpf的窗体是使用xaml标签来定义对象的, 顶级标签<Window></Window>定义了Window对象, <Grid></Grid> 定义了一个网格布局对象,<Button></Button>定义了一个Button对象,我们也可以在标签内定义属性以及事件。xmlns和xmlns:x和xmlns:d和xmlns:mc 都是XAML命名空间,和C# namespace 相似。

xmlns 命名空间 : 在XAML中没有使用前缀的元素定义都来自于该命名空间,例如<Window></Window> <Grid></Grid><Button></Button>

xmlns:x 命名空间:x:Class 指令引用的改命名空间,表示XAML解析器将包含的标签解析后放到哪个C#类中。

xmlns:d 命名空间表示提供一些设计器的支持,mc:Ignorable="d" 指令表示在xaml设计器中生效,在运行时并不起作用。

xmlns:local 应用自定义类型
xmlns:d 命名空间表示提供一些设计器的支持
通过这篇文章我们对WPF启动项、以及标签语言有了个简单的认识,下一节我们将WPF常用布局系统。