0

ブラウザで WinForm スマート クライアント デスクトップ アプリケーションを実行する必要があります。次の記事では、WPF ブラウザー アプリケーション (XBAP) で WinForm をホストする方法について説明します。

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

しかし、私たちのアプリケーションは Smart Client アーキテクチャ (Smart Client Software Factory - Guidance Package) に基づいています。したがって、フォームの作成と表示を制御することはできません。WPF ブラウザー ベースのアプリケーションでスマート クライアントをホストするために必要なものの詳細を共有できますか?

4

1 に答える 1

0

最後に、これを達成するためのいくつかの回避策を得ました。

シェル フォームを実行する WindowsFormsApplication クラスのオーバーライドされた Start メソッド。しかし、これはフォームが破棄されるという別の問題につながります。CabApplication.Run メソッドは内部的に Start メソッドを呼び出し、フォームが閉じられると破棄します。Startメソッドでフォームを表示していないので、そのままdisposeします。

これを克服するために、SCSF フレームワークの Run メソッドからの dispose 呼び出しをコメントし、アプリケーションで処理しました。フレームワークを変更することが良いアイデアかどうかはわかりませんが、うまくいきました。

XBAP アプリケーションで Shell オブジェクトを取得するために、WinForm アプリケーションで Form オブジェクトを返すメソッドを作成しました。また、AfterShellCreated のイベントを使用して、シェルの作成について XBAP アプリケーションに通知しました。

これらすべての変更により、WPF ブラウザー ベースのアプリケーションでスマート クライアントをホストできるようになりました。

これが他の人に役立つことを願っています。

于 2016-06-17T09:27:21.163 に答える