app.xaml找不到InitializeComponent方法
报错内容
"App" 未包含 "InitializeComponent" 的定义,并且找不到可接受第一个 "App" 类型参数的可访问扩展方法"InitializeComponent"(是否缺少 using 指令或程序集引用?)
两种情况
1.app.xaml的x:class的内容写错了
需要将app.xaml的命名空间和app.xaml.cs的命名空间对应上
2.app.xaml的文件属性错误
默认情况下app.xaml的属性是 ApplicationDefinition(应用程序定义),代表是 wpf 程序的入口,如果将应用程序的入口写到其他地方,需要将此文件的属性修改成 page(页),否则或出现找不到 InitializeComponent 方法的问题。
InitializeComponent的作用
本质上,InitializeComponent() 方法的所有工作就是调用 System.Windows.Application 类的LoadComponent() 方法。LoadComponent() 方法是从程序集中提取 BAML,并使用它构造用户界面。当解析BAML时,它会创建每个控件对象,设置其属性,并关联所有事件处理程序。
此方法为正在加载的 Window 找到XAML的URIUserControl,并将其传递给System.Windows.Application.LoadComponent()静态方法。LoadComponent()加载位于传入的URI中的XAML文件,并将其转换为XAML文件的根元素指定的对象的实例。
更详细地,LoadComponent创建的实例XamlParser,并构建XAML的树。每个节点都由解析XamlParser.ProcessXamlNode()。这被传递给BamlRecordWriter班级。