将Smart Client转换为XBAP以在浏览器中运行它

时间:2016-06-14 13:27:39

标签: xbap scsf

我们要求在浏览器中运行WinForm智能客户端桌面应用程序。下面的文章解释了如何在WPF浏览器应用程序(XBAP)中托管WinForm。

http://www.codeproject.com/Articles/31429/Embedding-a-NET-WinForms-Application-in-an-Interne

但我们的应用程序基于智能客户端架构(智能客户端软件工厂 - 指导包)。因此,我们无法控制表单创建和显示。任何人都可以分享在基于WPF浏览器的应用程序中托管智能客户端所需的详细信息吗?

1 个答案:

答案 0 :(得分:0)

最后得到了一些解决方法来实现这一目标。

重写了运行Shell表单的WindowsFormsApplication类的Start方法。但是这导致形式被处理的另一个问题。 CabApplication.Run方法在内部调用Start方法,然后在窗体关闭后处理它。由于我没有在Start方法中显示表单,因此直接进行处理。

为了解决这个问题,我在SCSF框架中注释了来自Run方法的dispose调用并在应用程序中处理。我不确定在框架中进行更改是一个好主意,但它对我有用。

要在XBAP应用程序中获取Shell对象,我在WinForm应用程序中创建了一个方法,该方法返回Form对象。我还在AfterShellCreated中使用了一个事件来通知XBAP应用程序有关Shell的创建。

通过所有这些更改,我能够在基于WPF浏览器的应用程序中托管智能客户端。

希望这会有所帮助。