private void finishMouseDragging() { if (!mouseDragging) { return; } using (plot.SuspendEvents()) { AdvancedRect dataArea = plot.DataArea; if (zoomingPlotArea || zoomingXAxis) { double newMin = plot.XAxis.CoordinateToData(selectionRect.TopLeft.X, dataArea); double newMax = plot.XAxis.CoordinateToData(selectionRect.BottomRight.X, dataArea); plot.XAxis.ZoomedMinimum = newMin; plot.XAxis.ZoomedMaximum = newMax; if (zoomingPlotArea) { foreach (KeyValuePair <string, NumericYAxis> kv in plot.YAxes) { NumericYAxis y = kv.Value; newMax = y.CoordinateToData(selectionRect.TopLeft.Y, dataArea); newMin = y.CoordinateToData(selectionRect.BottomRight.Y, dataArea); y.ZoomedMinimum = newMin; y.ZoomedMaximum = newMax; } } } else if (zoomingYAxis != null) { double newMax = zoomingYAxis.CoordinateToData(selectionRect.TopLeft.Y, dataArea); double newMin = zoomingYAxis.CoordinateToData(selectionRect.BottomRight.Y, dataArea); zoomingYAxis.ZoomedMinimum = newMin; zoomingYAxis.ZoomedMaximum = newMax; } selectionBr.Dispose(); selectionBr = null; mouseDragging = false; disableZoom(); } }