我有一个Controls.ItemsControl
(实际上是一个HelixViewport3D
),并希望将其添加到Forms.UserControl
中。
我已经尝试this.Controls.Add(new HelixViewport3D());
这是UserControl
的衍生物
但是这会导致错误HelixToolkit.Wpf.HelixViewport3D' to 'System.Windows.Forms.Control
。这是有道理的,因为他们不会从彼此继承任何东西。在这些情况下是否有一种包装类?
using HelixToolkit.Wpf;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
public partial class HelixForm : Form
{
public HelixForm()
{
InitializeComponent();
var _3Dcntr = new HelixViewport3D();
this.Controls.Add(_3Dcntr);//doesn't work
//what we worked out so far
var elemHost = new ElementHost();
}
}
我还注意到,应该可以使用ElementHost.Child在winform中托管WPF,但在我的示例代码中找不到添加此变量/函数(缺少什么?),System.Windows.Forms.Integration .ElementHost告诉我缺少System.Windows.Forms.Integration。
答案 0 :(得分:-1)
Hosting WPF Composite Control in Winform
建议不要在Winforms应用程序中混合使用WPF,但Microsoft在WindowsFormsIntegration命名空间中提供了ElementHost。
这是他们工作的更深入的演示 Mixing WPF and Winforms
(对不起我以前没混过的简单回答。)