无法使用Application.LoadComponent加载app.xaml

本文关键字:加载 app xaml LoadComponent Application | 更新日期: 2023-09-27 18:14:39

我在一个项目中再现了一个问题,我需要使用Application加载App.xaml。

在只有一个WPF项目的小型解决方案中加载组件。

我在一个单独的类中有一个应用程序入口点,它按如下方式创建应用程序:

[STAThread]
static void Main()
{
    var app = new App();
    var resource = new Uri("/WpfApplication1;component/app.xaml", UriKind.Relative);
    Application.LoadComponent(app, resource);
    app.Run(new MainWindow());
}

方法调用LoadComponent时抛出异常:

未处理的System.IO类型异常。发生IOException'PresentationFramework.dll

附加信息:Cannot locate resource 'app.xaml'.

我看不出我做错了什么,这个答案似乎指向相同的解决方案。还有这个

程序集名称是正确的,在问这个问题之前仔细检查一下。我尝试了以下资源位置,它们都导致相同的异常:

var resource = new Uri("/WpfApplication1;component/app.xaml", UriKind.Relative);
var resource = new Uri("/WpfApplication1;component/WpfApplication1/app.xaml", UriKind.Relative);
var resource = new Uri("/WpfApplication1;component/WpfApplication1.app.xaml", UriKind.Relative);

无法使用Application.LoadComponent加载app.xaml

将App.xaml文件的Build Action更改为Page并运行。

var app = new App();
var resource = new Uri("/WpfApplication1;component/app.xaml", UriKind.Relative); 
Application.LoadComponent(app, resource);            
app.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
app.Run();