1

アプリケーション内で機能する他のWindowsフォームを呼び出すWindowsフォームがあります。私が達成したいのは、この「Windowsフォーム」全体から離れて、代わりにWPFビュー(ユーザーコントロール)を使用することです。ビューを呼び出してフォームから表示する方法はありますか?

ElementHost host = new ElementHost();
            Cars.WPF.Views.DescriptionView descView = new Cars.WPF.Views.DescriptionView();
            host.Controls.Add(descView);
            host.Dock = DockStyle.Fill;

エラーが発生します:->引数1:「Car.WPF.Views.DescriptionView」から「System.Windows.Forms.Control」に変換できません

4

2 に答える 2

2

WinFormにパネルを追加します(たとえば、panel1)クラスレベルでElementHostを定義し、クラスレベルでWPFコントロールも定義します

ElementHost host;
Cars.WPF.Views.DescriptionView descView;

フォームロードイベントでは、次のようにします。

host= new ElementHost();
panel1.Controls.Add(ctrlHost); //Add Element host to panel1
descView = new Cars.WPF.Views.DescriptionView();
descView.InitializeComponent();
host.Child = descView; //Instead of adding WPF control to Winform do this

また、プロジェクト参照に以下を追加します。

PresentationCore
PresentationFramework
WindowsBase
于 2012-04-25T17:13:02.333 に答える
1

はい、ElementHostを使用します。

http://www.switchonthecode.com/tutorials/wpf-tutorial-using-wpf-in-winforms

http://msdn.microsoft.com/en-us/library/system.windows.forms.integration.elementhost.aspx

于 2012-04-25T16:57:54.953 に答える