1

我有一个 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 回答