C#下使用Winform用户控件,Host vtkRenderWindow,来实现vtk与winform集成

使用vtk的C# warp 版本 ActiViz.net之vtkRenderWindow。

1.首先写个派生于UserControl下的一个自定义控件,用来host vtkRenderWindow

代码如下:

 public partial class WinFormPaneFrame : UserControl
    {
        
        public WinFormPaneFrame() :
            base()
        {
            InitializeComponent();
        } 
}   

2. 在 构造函数中,添加vtkRenderWindow类的实现,并设置其父窗口时该控件。设置该renderWindow窗口的size 和控件的尺寸一致。启动该renderWindow

代码如下:

this._RenderWindow = vtkRenderWindow.New();
                this._Renderer = vtkRenderer.New();
                this._Renderer.SetBackground(0.2, 0.2, 0.2);
                this._RenderWindow.AddRenderer(this._Renderer);
                this._RenderWindow.SetParentId(this.Handle);
                this._RenderWindow.SetSize(this.Size.Width, this.Size.Height);
                this._RenderWindow.Start();

3.  保持vtkRenderWindow的窗口大小和用户控件的大小一致。相应OnSizeCHanged事件,设置renderWindow的size

代码:

 private void UserControlPaneFrame_SizeChanged(object sender, EventArgs e)
        {
                this._RenderWindow.SetSize(this.Size.Width, this.Size.Height);
        }

 

 

posted on 2013-03-10 20:03  |残阳|露  阅读(1677)  评论(0编辑  收藏  举报

导航