我们需要在浏览器中运行WinForm智能客户端桌面应用程序。下面的文章解释如何在WPF浏览器应用程序(XBAP)中承载WinForm。
http://www.codeproject.com/Articles/31429/Embedding-a-NET-WinForms-Application-in-an-Interne
但是我们的应用程序是基于智能客户端架构的(智能客户端软件工厂-指导包)。所以我们无法控制表单的创建和显示。是否有人可以分享在基于WPF浏览器的应用程序中托管智能客户端所需的详细信息?
发布于 2016-06-17 17:27:21
最终得到了一些解决方法来实现这一点。
重写运行外壳窗体的WindowsFormsApplication类的Start方法。但这导致了另一个处理表单的问题。CabApplication.Run方法在内部调用Start方法,然后在窗体关闭后释放该窗体。因为我没有在Start方法中显示表单,所以它直接转到dispose。
为了克服这个问题,我在SCSF框架中注释了来自Run方法的dispose调用,并在应用程序中进行了处理。我不确定框架的改变是否是一个好主意,但它对我很有效。
为了在XBAP应用程序中获取Shell对象,我在WinForm应用程序中创建了一个方法,该方法返回表单对象。我还在AfterShellCreated中使用了一个事件来通知XBAP应用程序关于Shell的创建。
通过所有这些更改,我能够在基于WPF浏览器的应用程序中托管智能客户端。
希望这能对其他人有所帮助。
https://stackoverflow.com/questions/37813482
复制相似问题