我的Activiz.NET项目中有一个vtkRenderWindow,我想知道每次按鼠标左键时鼠标的坐标。我的工作如下:
m_window.GetInteractor().LeftButtonPressEvt += leftButtonPressEvent;
private void leftButtonPressEvent(vtkObject sender, vtkObjectEventArgs e)
{
int[] position;
position = m_window.GetInteractor().GetEventPosition();
MessageBox.Show("X: " + position[0] + ", Y: " + position[1]);
}
(其中m_window是vtkRenderWindow)
它可以运作...但是我每2次点击仅1次。也就是说,每2次点击触发一次事件。我认为这可能与我的RenderWindowControl在显示MessageBox之后失去焦点有关,但事实并非如此。解决该问题的方法是:
m_window.GetInteractor().RemoveAllObservers();
但这不好,因为它不允许我与vtkRenderWindow中包含的vtkRenderers中的模型进行交互。
是否知道如何使此事件正常运行?
谢谢!