无法使用Application.LoadComponent

时间:2015-09-27 17:42:19

标签: c# wpf xaml

我在一个项目中重现了一个问题,我需要在一个只有1个WPF项目的小型解决方案中使用Application.LoadComponent加载App.xaml。

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

    [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

     

其他信息:无法找到资源' app.xaml'。

我无法看到我做错了什么,this答案似乎也指向了同样的解决方案。而且this也是。

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

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);

1 个答案:

答案 0 :(得分:3)

将App.xaml文件的构建操作更改为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();