/// <summary> /// Handles the mouse down event. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The <see cref="OxyPlot.OxyMouseEventArgs"/> instance containing the event data. /// </param> public void HandleMouseDown(object sender, OxyMouseEventArgs e) { // Revert the order to handle the top-level elements first foreach (var element in this.GetElements().Reverse()) { var uiElement = element as UIPlotElement; if (uiElement == null) { continue; } var result = uiElement.HitTest(e.Position, MouseHitTolerance); if (result != null) { e.HitTestResult = result; uiElement.OnMouseDown(sender, e); if (e.Handled) { this.currentMouseEventElement = uiElement; } } if (e.Handled) { break; } } if (!e.Handled) { this.OnMouseDown(sender, e); } }
/// <summary> /// Handles the mouse up event. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The <see cref="OxyPlot.OxyMouseEventArgs"/> instance containing the event data. /// </param> public void HandleMouseUp(object sender, OxyMouseEventArgs e) { if (this.currentMouseEventElement != null) { this.currentMouseEventElement.OnMouseUp(sender, e); this.currentMouseEventElement = null; } if (!e.Handled) { this.OnMouseUp(sender, e); } }