WPF应用程序如何知道从哪里开始?

本文关键字:开始 应用程序 何知道 WPF | 更新日期: 2023-09-27 17:52:42

我是c#/WPF的新手。我对WPF分层的概念有一个很好的理解,它是一个非常好的工具。然而,我所遇到的是,VS和类似的东西试图使事情非常不干涉底层代码。

当在vsc# Express 2008中启动一个全新的WPF应用程序时,有两个直接可见的源文件:App.xamlWindow1.xaml。这一切都很好,但我唯一看到事情开始的地方是App.xaml中说

的那行。
<Application x:Class="SomeName.App"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  StartupUri="Window1.xaml">

查看SomeName.App的类名,我猜扩展Application表示从哪里开始,但是应用程序实际上是如何知道的?

我很熟悉Java,所以如果这样解释更容易,请这样做。我喜欢尽可能在最低层次上理解事物(不涉及机器代码),所以请帮助我更深入地了解c#和WPF的内部工作原理。

与往常一样,感谢StackOverflow社区的任何帮助。:)

WPF应用程序如何知道从哪里开始?

您可能需要理解的概念是,工具链从XAML文件生成代码,这为声明性XAML提供了'类似代码'的行为。

但是WPF非常复杂,不像其他任何东西,一本书可能会有用-我个人认为Adam Nathan的WPF书是非常优秀的,它将涵盖"概念的一般理解"的东西,我认为比互联网要好得多。

生成的应用程序文件可能被称为app.g.cs,并将在其中一个中间文件目录中-查看那里以查看实际的启动代码-在其他内容中,您将发现如下内容:

    public static void Main() {
        MyAppName.App app = new MyAppName.App();
        app.InitializeComponent();
        app.Run();
    }

在这一点上,它可能开始变得更有意义。

事实上,如果你不喜欢声明式的方式,你可以自己编写所有的启动代码。