2009-07-13 33 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/

我对此很感兴趣,所以如果你得到这个工作,让我们知道这是怎么回事!