对于整个C#/ WPF来说,我是全新的。我对WPF分层的概念有一个很好的理解,它是一个非常好的工具。然而,我遇到的是VS等等试图让底层的代码完全不干净。
在VS C#Express 2008中启动全新的WPF应用程序时,有两个立即可见的源文件:App.xaml
和Window1.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社区的任何帮助。 :)
答案 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();
}
此时它可能会开始更有意义。
事实上,如果你不喜欢声明性路由,你可以自己编写所有启动代码。