1

我有一个Controls.ItemsControl (实际上是 a HelixViewport3D)并想将它添加到 aForms.UserControl中。

我已经尝试过this.Controls.Add(new HelixViewport3D()); Where this is a derived fromUserControl 但是这导致了错误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。

4

1 回答 1

-1

在 Winform 中托管 WPF 复合控件

不建议在 Winforms 应用程序中混合 WPF,但 Microsoft 在 WindowsFormsIntegration 命名空间中提供了 ElementHost。

这是他们工作 混合 WPF 和 Winforms的更深入的演示

(对不起,我以前没有混合过它们的简单答案。)

于 2016-06-08T12:13:47.807 回答