2010-09-18 40 views
1

我有一個WPF項目中,我加載WindowsForsm組件(dll文件)動態如下:動態加載WindowsForms控件添加到WPF WindowsFormsHost

 Assembly currentAssembly = Assembly.LoadFile(System.IO.Directory.GetCurrentDirectory() + @"\" + fileName);    
     System.Windows.Forms.Control currentControl = (System.Windows.Forms.Control)currentAssembly.CreateInstance(featureName, false); 

     featureHost.Child = currentControl; 

我對爲featureHost XAML代碼如下所示:

<WindowsFormsHost Name="featureHost" Grid.Row="1" Margin="14,4,14,14" Background="WhiteSmoke"></WindowsFormsHost> 

我遇到的問題是在C#代碼中currentControl將爲null,但currentAssembly需要正確加載。但是,如果我將項目引用添加到作爲Windows Forms項目的項目中,currentControl將獲取正確的值。 coures我不想有一個我不需要的WindowsForms項目的引用。 劑量任何人有什麼建議,爲什麼它這樣工作,以及我如何解決它? 我正在使用.Net 4.0。

回答

0

發現真正的問題。問題不在於我在寫這個問題時需要引用Windows Forms項目。 真正的問題是我試圖加載的Windows窗體控件無法找到它需要的dll。

+0

你是如何確定它需要哪個dll的?我有一個類似的問題,但沒有關於什麼DLL丟失的細節。並且wpf項目與舊的winforms項目具有相同的引用。 – Casey 2014-06-04 11:48:20