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默认程序结构_WPF_02

  标签化语言

WPF 系列-01默认程序结构_默认程序结构_03

  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常用布局系统

  想要更快更方便的了解相关知识,可以关注微信公众号 

WPF 系列-01默认程序结构_WPF_04