namespace WindowsApplication1{ ////// Interaction logic for Window1.xaml /// public partial class Window1 : Window { public Window1() { InitializeComponent(); } }}
当编译应用程序时,定义用户界面的 XAML(如 Window1.xaml)被转换为 CLR 类型声明,这些类型声明和代码隐藏类文件(如 Window1.xaml.cs)中逻辑代码融合到一起,形成单一的单元。
现在,Window1 类尚不具备有任何真正的功能。然而,它却包含了一个非常重要的细节 ——默认构造函数,当创建类的一个实例时,该构造函数调用 InitializeComponent() 方法。该方法在 WPF 应用程序中扮演着一个重要角色。因此,永远不要删除在窗口构造函数中的 InitializeComponent() 调用。同样,如果为窗口类添加另一个构造函数,也要确保调用 InitializeComponent() 方法。
InitializeComponent() 方法在源代码中是不可见的,因为它是在编译应用程序时自动生成的。本质上,InitializeComponent() 方法的所有工作就是调用 System.Windows.Application 类的LoadComponent() 方法。LoadComponent() 方法是从程序集中提取 BAML,并使用它构造用户界面。当解析BAML时,它会创建每个控件对象,设置其属性,并关联所有事件处理程序。
参考: