Vtk 将RenderWindowControl添加到工具箱

Vtk 将RenderWindowControl添加到工具箱,vtk,Vtk,我正在尝试使用Kitware ActiViz.NET。我已经使用nuget安装了它。 但我似乎在工具箱中找不到RenderWindowControl。我一直试图通过以下方式手动添加它: 调用“选择项目…” 在下面的对话框中,单击“浏览…”按钮 导航到ActiViz.NET安装文件夹,浏览到/bin 文件夹中,选择“Kitware.VTK.dll” 单击“确定” 现在,您应该在工具箱中看到一个名为RenderWindowControl的新控件。 但我得到的“文件”C:\programfiles

我正在尝试使用Kitware ActiViz.NET。我已经使用nuget安装了它。 但我似乎在工具箱中找不到RenderWindowControl。我一直试图通过以下方式手动添加它:

  • 调用“选择项目…”

  • 在下面的对话框中,单击“浏览…”按钮

  • 导航到ActiViz.NET安装文件夹,浏览到/bin 文件夹中,选择“Kitware.VTK.dll”

  • 单击“确定”

现在,您应该在工具箱中看到一个名为RenderWindowControl的新控件。 但我得到的“文件”C:\programfiles\activiz.net 5.8.0 Opensource Eddition\bin\kitware.vtk.DLL“无效”

我尝试在代码中添加控件,但没有添加设计器,因此出现以下异常: 无法加载文件或程序集“Kitware.VTK,版本=5.8.0.607,区域性=中性,PublicKeyToken=995c7fb9db2c1b44”或其依赖项之一。试图加载格式不正确的程序

以前有人有过这个问题吗?
有什么想法吗?

对于设计模式,您需要使用32位版本,因为VS在32位上运行,并且只能加载32位控件。 因此,您可以在设计时使用32位版本,并在构建/发布时切换到64位版本

但是您也可以手动添加
RenderWindowControl
。 当然,设计师将无法显示此内容,因此 在切换到设计师之前,需要对其进行注释

打开设计器文件,例如Form1.designer.cs,然后添加控件,如

private RenderWindowControl myRenderWindowControl;

private void InitalizeComponent()
{
    //all other controls added by the designer

    myRenderWindowControl = new RenderWindowControl();
    myRenderWindowControl.SetBounds(0,0,640,480);
    this.Controls.Add(this.myRenderWindowControl);
}

将VTK的RenderWindowControl添加到WPF有点复杂。 假设您安装了64位VTK软件包,以下步骤对我有效

  • 将项目引用添加到WindowsFormsIntegration和System.Windows.Forms
  • 在设计器窗体上绘制网格
  • 在“属性”对话框中,为其命名,然后
  • 双击加载的事件
  • 在加载的事件处理程序中添加代码
//创建互操作主机控件。
System.Windows.Forms.Integration.WindowsFormsHost主机=
新系统.Windows.Forms.Integration.WindowsFormsHost();
myRenderWindowControl=新建RenderWindowControl();
myRenderWindowControl.SetBounds(0,0,30,30);//不要太大,以防它消失。
//将控件指定为宿主控件的子控件。
host.Child=myRenderWindowControl;
this.VTKGrid.Children.Add(主机);

我假设您使用的是64位版本?是的。我使用的是64位版本。