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

时间:2011-04-22 16:31:18

标签: c# wpf visual-studio-2008

对于整个C#/ WPF来说,我是全新的。我对WPF分层的概念有一个很好的理解,它是一个非常好的工具。然而,我遇到的是VS等等试图让底层的代码完全不干净。

在VS C#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社区的任何帮助。 :)

1 个答案:

答案 0 :(得分:5)

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

但WPF非常复杂,并不像其他任何东西,并且一本书可能有用 - 我个人认为Adam Nathan WPF书非常出色,并且将比互联网更好地涵盖这种“概念的一般理解”。 ,IMO。

生成的应用程序文件可能会被称为app.g.cs,并且将位于其中一个中间文件目录中 - 看看那里的实际启动代码 - 除此之外,你会发现像:

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

此时它可能会开始更有意义。

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