public void Scale(int wheelDelta, Point mouse) { Point p = GraphViewCenter(); double desiredZoom = Zoom * (wheelDelta > 0 ? 1.25 : 0.8); double boundedZoom = Math.Max(0.5, Math.Min(3, desiredZoom)); double boundedScale = boundedZoom / Zoom; Zoom = boundedZoom; AppSettings set = ((App)Application.Current).Settings; Point origin = set.UseMouseAsZoomOrigin ? mouse : Center; ZoomAndPanCanvasModel.Rescale(boundedScale, origin); ZoomAndPanCanvasModel.Move(new Vector(0, 0), new Size(p.X * 2, p.Y * 2)); }
public void ResetTranslate() { ZoomAndPanCanvasModel.Rescale(1 / Zoom, new Point(0, 0)); Zoom = 1; Move(new Vector(double.MaxValue, double.MaxValue)); }