2012-04-25 16 views
1

私のアプリケーション内で動作する他のウィンドウフォームを呼び出すウィンドウフォームがあります。私が達成したいのは、この「ウィンドウフォーム」全体から離れ、代わりにWPF View(usercontrol)を使用することです。フォームから表示するビューを呼び出す方法はありますか? >引数1: 'System.Windows.Forms.Control'Windowsフォーム内にxamlビューを表示することは可能ですか

答えて

2

あなたのWinフォームにパネルを追加します(パネル1を言うことができます) 、クラスレベルでのフォームのLoadイベントでもクラスレベルでWPFコントロールを定義

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

をElementHostを定義しますdo:

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 
1

はい、使用要素ホストに 'Car.WPF.Views.DescriptionView' から変換することはできません - :

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

私はエラーを取得します。

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

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

+0

私は要素ホストを使用しようとしましたが、好きではありません。 – Calvin

+0

exaclyはそれが好きではありません。 WPF UserControlは表示されませんか?バインディングは機能しますか?キーボード入力は認識されませんか?単純なWPFコントロールを使って新しいフォームを起動するだけで簡単に起動しようとしましたか?それを働かせますか? –

+0

私の例を更新しました。 – Calvin

関連する問題