public override void OnModifierMouseUp(ModifierMouseArgs e) { ModifierSurface.ReleaseMouseCapture(); endPoint = GetPointRelativeTo(e.MousePoint, ModifierSurface); OnAttached(); if (Math.Abs(startPoint.X - endPoint.X) > 10) { int i = 0; foreach (CustomWaterfallNumericAxis YAxis in ParentSurface.XAxes) { YAxis.Zoom(startPoint.X + i * 2, endPoint.X + i * 2, TimeSpan.FromMilliseconds(1000)); i++; } } }
/// <summary> /// Called when a Mouse Button is released on the parent <see cref="SciChartSurface"/> /// </summary> /// <param name="e">Arguments detailing the mouse button operation</param> /// <remarks></remarks> public override void OnModifierMouseUp(ModifierMouseArgs e) { if (!_isDragging) { return; } base.OnModifierMouseUp(e); e.Handled = true; // Translate the mouse point (which is in RootGrid coordiantes) relative to the ModifierSurface // This accounts for any offset due to left Y-Axis //Point ptTrans = RootGrid.TranslatePoint(e.MousePoint, ModifierSurface); _rectangle = Rect.Empty; UpdateSurface(); ClearReticule(); _isDragging = false; ModifierSurface.ReleaseMouseCapture(); }
/// <summary> /// Called when a Mouse Button is released on the parent <see cref="SciChartSurface" /> /// </summary> /// <param name="e">Arguments detailing the mouse button operation</param> public override void OnModifierMouseUp(ModifierMouseArgs e) { if (!_isDragging) { return; } base.OnModifierMouseUp(e); // Translate the mouse point (which is in RootGrid coordiantes) relative to the ModifierSurface // This accounts for any offset due to left Y-Axis var ptTrans = GetPointRelativeTo(e.MousePoint, ModifierSurface); _endPoint = SetReticulePosition(_rectangle, _startPoint, ptTrans, e.IsMaster); double distanceDragged = PointUtil.Distance(_startPoint, ptTrans); if (distanceDragged > 10.0) { PerformSelection(_startPoint, _endPoint); e.Handled = true; } else { SelectedPoints = null; ParentSurface.InvalidateElement(); } ClearReticule(); _isDragging = false; if (e.IsMaster) { ModifierSurface.ReleaseMouseCapture(); } }