如何在窗体中获取Controls.ItemsControl

时间:2016-06-08 11:18:53

标签: c# wpf forms user-controls helix-3d-toolkit

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

1 个答案:

答案 0 :(得分:-1)

Hosting WPF Composite Control in Winform

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

这是他们工作的更深入的演示 Mixing WPF and Winforms

(对不起我以前没混过的简单回答。)