2009-07-13 68 views
1

我有一個WPF應用程序,其中包含一些子控件。創建一個在外部進程中運行的WPF「控件」

其中的控件之一,其舉辦的封面下方運行,這將引發訪問衝突和崩潰的應用程序的一些本地代碼第三方庫。不幸的是,刪除庫不是一種選擇。

我希望做的是旋轉了一個新的窗口過程,主機內的第三方庫,並用它在某種程度上溝通。與Google Chrome和IE8處理瀏覽器插件的方式大致相同。

的問題是,第三方庫需要繪製到屏幕上,所以我必須以某種方式有我的WPF應用程序的主窗口中的HTML內嵌框架的等價物。

我不知道如何讓這個開始,它的證明很難谷歌迄今。任何意見是極大的讚賞。

+0

你最終在這裏做了什麼?非常好奇這一點。 – 2009-10-02 19:04:51

+0

尚未做任何事情。將不得不記得更新這個問題,當我們做 – 2009-10-04 19:42:23

回答

0

可能不是最簡單的任務。您是否考慮過將您的第三方內容託管在單獨的應用程序域中?這樣,您還可以獲得良好的隔離度,同時爲您節省另一個項目的麻煩。是否需要不斷刷新或者在應用程序的預定義點刷新?也許一些方案,你基本上是在原有的應用程式做第三方輸出的屏幕截圖,並顯示爲圖像這樣纔有可能......

+0

據我瞭解,一個單獨的AppDomain仍然住在同一個win32過程?我需要在獨立的Windows進程中運行它,因爲第三方應用程序在本機代碼級崩潰(win32訪問衝突等等)。當發生這些情況時,整個窗口進程停止,.NET和所有 – 2009-07-13 22:17:36

3

這是一個艱難的,但幸運的是有一點點的工作是最近在這個領域完成了。

您是否聽說過.NET 3.5中的System.Addin命名空間?在這種情況下它可能會有所幫助。它允許將控件加載到單獨的AppDomain中,但可以顯示在同一UI中。我想你必須做一些工作才能讓一切正常通信(以前從未做過),但這是可能的。

看一看這個早期員額從外接團隊:http://blogs.msdn.com/clraddins/archive/2007/08/06/appdomain-isolated-wpf-add-ins-jesse-kaplan.aspx

好像他們一直在CodePlex上他們的樣品和輔助代碼:http://clraddins.codeplex.com/

我對此很感興趣,所以如果你得到這個工作,讓我們知道這是怎麼回事!