C# WPF Application 的 App.xaml 和 Main() 重写 《一》

当我们新建一个WPF Appliaction, .NetFramework 会为我们创建 MainWindow.xaml 和 App.xaml 文件。

C# WPF Application 的 App.xaml 和 Main() 重写 《一》

App.xaml 是整个 WPF Application 的入口, 我们看看它的属性, 它的 build action 是 ApplicationDefinition, 这是一个 WPF Application 入口应有的 build action。如果把它改成  Page  我们在 Application 的 属性里面就找不到 Start object

C# WPF Application 的 App.xaml 和 Main() 重写 《一》

C# WPF Application 的 App.xaml 和 Main() 重写 《一》

然后我们发现在 App.xaml.cs 里面没有 Main() 方法,  这是由于CLR在编译的时候自动创建了。但这取决于 App.xaml 的 build action, 如果不是 ApplicationDefinition, CLR 是不会自动创建 Main()。那这个时候就要自己创建。

C# WPF Application 的 App.xaml 和 Main() 重写 《一》

首先把 build action 改为 Page, 不使用CLR自动创建的 Main(), 然后自己创建一个。 然后你会发现 Application 的 属性里面找到 Start object。

C# WPF Application 的 App.xaml 和 Main() 重写 《一》

总结:

1. Start object 会以 Main() 为标记

2. 使用自己创建的 Main() 还是 CLR 自动创建的, 取决于 xaml 文件的 build action 是否 ApplicationDefinition

3. App.xaml 是可以被取代和可选的 (请看下一篇文章)