我正在使用ActiViz 8.1(VTK C#版本)开发WinForm应用程序。 当我在代码中添加任何VTK小部件时,就会发生访问冲突错误。 当我调整表单大小或输入鼠标光标时,似乎发生了错误。
我也在ActiViz 5.0和7.1上进行了测试,但是发生了相同的错误。
我找不到任何有效的示例来说明如何使用小部件,因此我不知道自己是否正确使用了小部件。
您能告诉我如何解决该问题或如何在WinForm中使用窗口小部件吗?
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
renderWindowControl1.Load += RenderWindowControl_Load;
}
private void RenderWindowControl_Load(object sender, EventArgs e)
{
vtkSphereSource SphereSource = vtkSphereSource.New();
SphereSource.SetRadius(0.5);
vtkPolyDataMapper SphereMapper = vtkPolyDataMapper.New();
SphereMapper.SetInputConnection(SphereSource.GetOutputPort());
vtkActor SphereActor = vtkActor.New();
SphereActor.SetMapper(SphereMapper);
vtkRenderWindow RenderWindow = renderWindowControl1.RenderWindow;
vtkRenderer Renderer = RenderWindow.GetRenderers().GetFirstRenderer();
Renderer.SetBackground(0.2, 0.3, 0.4);
Renderer.AddActor(SphereActor);
Renderer.ResetCamera();
vtkAxesActor axes = vtkAxesActor.New();
vtkOrientationMarkerWidget oriWidget = vtkOrientationMarkerWidget.New();
oriWidget.SetOutlineColor(0.9300, 0.5700, 0.1300);
oriWidget.SetOrientationMarker(axes);
oriWidget.SetViewport(0.0, 0.0, 0.3, 0.3);
oriWidget.SetInteractor(RenderWindow.GetInteractor());
oriWidget.SetEnabled(1);
}
}