У меня есть vtkRenderWindow в моем проекте Activiz.NET, и я хочу знать координаты мыши каждый раз, когда я нажимаю левую кнопку мыши.Я делаю следующее:
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)
Это работает ... но я делаю только 1 каждые 2 клика.То есть событие срабатывает каждые 2 клика.Я думал, что это могло быть связано с тем, что мой RenderWindowControl потерял фокус после отображения MessageBox, но это не так.Что это исправляет:
m_window.GetInteractor().RemoveAllObservers();
Но это бесполезно, поскольку не позволяет мне взаимодействовать с моделями в vtkRenderers, содержащимися в vtkRenderWindow.
Есть идеи, как правильно организовать это событие?
Спасибо!