// Обработчик события от полей вывода разметки private void OnDisplayCanvasEvent( object sender, DisplayCanvasEventArgs e) { string eventName; switch (e.EventID) { case DisplayCanvasEventID.FocusPointed: default: eventName = "Focus Pointed"; break; case DisplayCanvasEventID.NodeCreated: if (e.HasBox) { eventName = "Box Created"; } else { eventName = "Marker Created"; } break; case DisplayCanvasEventID.NodeUpdated: if (e.HasBox) { eventName = "Box Updated"; } else { eventName = "Marker Updated"; } break; } string eventArgs = "X = " + e.clip.X.ToString() + "; Y = " + e.clip.Y.ToString(); if (e.HasBox) { eventArgs += "; W = " + e.clip.Width.ToString() + "; H = " + e.clip.Height.ToString(); } string messageText = eventName + ": " + eventArgs; MessageBox.Show(messageText, "Viewer " + e.ControlID.ToString() + " raised an event!"); }
private int m_ZoomDefaultID; // индекс начального зума // Обработчик события от поля вывода разметки private void m_OnDisplayCanvasEvent( object sender, DisplayCanvasEventArgs e) { int viewID = m_Viewers[e.ControlID].ViewID; int zoomID = m_Viewers[e.ControlID].ZoomID; double zoomValue = m_ZoomValues[zoomID]; DisplayCanvasEventArgs eTraceArgs; eTraceArgs = new DisplayCanvasEventArgs(e.EventID); eTraceArgs.ControlID = -1; // не используется далее eTraceArgs.ViewID = viewID; eTraceArgs.clip.X = (int)(e.clip.X * zoomValue); eTraceArgs.clip.Y = (int)(e.clip.Y * zoomValue); eTraceArgs.clip.Width = (int)(e.clip.Width * zoomValue); eTraceArgs.clip.Height = (int)(e.clip.Height * zoomValue); eTraceArgs.HasBox = e.HasBox; // Обработку события и изменение состояния слоя DisplayManager // будет выполнять слой TraceManager m_RaiseEvent(sender, eTraceArgs); }
private void OnViewerCanvasEvent(object sender, DisplayCanvasEventArgs e) { RunCanvasEvent(sender, e); }