我认为,当我使用XAML和WPF创建应用程序时,XAML将被编译为BAML,作为资源嵌入并在运行时加载。
我现在用Button创建了一个小类MainWindow.cs。
现在,我在obj \ Debug中看到文件MainWindow.g.i.cs,其中包含Button等的属性。
我现在问我,是什么原因,会创建一个MainWindow.g.i.cs,其中包含来自XAML生成的代码。编译器使用此文件做了什么?
感谢澄清。
答案 0 :(得分:1)
在编译时,MsBuild / Visual Studio为每个XAML文件创建一个文件,其构建操作为Page
。这是一个自动生成的部分类,它负责代码隐藏文件中的代码与XAML文件中的标记之间的连接。
在代码隐藏类的构造函数中调用的InitializeComponent()
方法以及在XAML标记中定义的具有x:Name
的任何控件的所有支持字段都是在这个班。您不必担心也不关心这些文件。
答案 1 :(得分:-1)
是的,你的编译正确,但这在运行时发生,而不是在编译时间内。