2015-09-27 46 views
0

我在一個項目中複製了一個問題,我需要使用Application.LoadComponent加載一個App.xaml,並且只有一個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也是。

程序集名稱是正確的,在提出這個問題之前再次檢查它。 我嘗試以下資源位置,他們都產生相同的異常:

你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); 
+0

downvote沒有任何解釋? – bas

+0

我已經想出瞭解決方案並提出了問題。我明天會發布解決方案。乾杯!晚安。 – AnjumSKhan

+0

@AnjumSKhan哈哈,那是相當的懸崖峭壁,已經整晚都把我的頭髮拉出來了。我會放下它,明天爲你的答案祈禱。 Thx提前! – bas

回答

3

變化生成操作。這也會起作用。

  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(); 
+0

先生,是的,先生!這就是訣竅。我有另一個應用程序,我有完全相同的設置,並且允許我使用App.xaml作爲ApplicationDefinition。真的很無知,爲什麼它在那個應用程序中工作,但另一方面真的很高興你解決了這個煩人的問題!謝謝!! – bas