6

WPFフォーム内のある種のコンテナまたはラッパータイプのコントロール内に(単一のコントロールだけでなく)完全なWinFormsフォームをホスト/表示する方法はありますか? 概念がphpまたはiframeのhtmlからの仮想インクルードに似たものを探しています。おそらく、OCX または DLL にコンパイルすることによって。

4

3 に答える 3

21

次のコードでそれを行うことができます:

XAML で:

<WindowsFormsHost name="wfHost" />

コード ビハインドで:

Form foo = new Form();
foo.TopLevel = false;
foo.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
wfHost.Child = foo;
于 2012-05-08T15:03:02.250 に答える
6

私の知る限り、WPF で実際の WinForms フォームをホストすることはできません。

ただし、必要なすべての機能と子コントロールを含む通常の UserControl を WinForms で (Windows フォーム コントロール ライブラリ プロジェクトとして) 作成することをお勧めします。

次に、WPF プロジェクトで、WindowsFormsIntegration.dll を参照します ([参照の追加] の [.NET] タブにある必要があります)。

次に、WinForms UserControl を含むアセンブリも参照し、最後に WindowsFormsHost コンテナーを XAML に追加します。

詳細については、Sacha Barber によるこの便利なチュートリアルを参照してください。

于 2010-02-19T00:33:51.970 に答える
1

WinForms のコントロールとして exe をホストする方法を示すCodeProjectに関する記事があります(これは、Tab ページを使用するアプリケーションであり、Winform.exe をその上にドラッグすると、そのウィンドウを含むタブページが作成されます)、これから派生します。記事はこちら。具体的に WPF を要求したことは知っていますが、おそらくそれが正しい方向に導く可能性がありますか?

これがお役に立てば幸いです。よろしくお願いします、トム。

于 2010-02-19T01:00:39.780 に答える