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应用程序是如何启动
Application 类是应用程序的一个实例,是单例模式,在整个应用程序域内只有一个实例,可以通过 App.Current属性来获取到该实例。Application有几个比较重要的事件我们做一下介绍:
Startup 事件:应用程序启动时触发
Activated 事件:应用程序窗体激活时触发
Deactivated 事件:应用程序窗体从激活状态变为非激活触发
Exit事件:应用程序退出时触发
Activated和Deactivated演示:
标签化语言
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常用布局系统