public void ZoomOut(int x, int y) { if (!zoomEnabled) { return; } if (this.Parent == null || zoom <= 1) { return; } if (this.Parent.GetType() != typeof(NewPanel)) { return; } NewPanel parent = (NewPanel)this.Parent; parent.SuspendDrawing(); // zoom /= 2; autoScrollPos = new Point(Math.Abs(this.Left), Math.Abs(this.Top)); autoScrollPos.X -= x / 2; autoScrollPos.Y -= y / 2; this.Width /= 2; this.Height /= 2; parent.AutoScrollPosition = autoScrollPos; parent.VerticalScroll.SmallChange /= 2; parent.HorizontalScroll.SmallChange /= 2; parent.VerticalScroll.LargeChange /= 2; parent.HorizontalScroll.LargeChange /= 2; this.Invalidate(); this.Focus(); // parent.ResumeDrawing(); parent.Invalidate(); }
// functions public void ZoomIn(int x, int y) { if (!zoomEnabled) { return; } if (this.Parent == null || zoom >= 8 || Width >= 8192 || Height >= 8192) { return; } if (this.Parent.GetType() != typeof(NewPanel)) { return; } NewPanel parent = (NewPanel)this.Parent; parent.SuspendDrawing(); // zoom *= 2; autoScrollPos = new Point(Math.Abs(this.Left), Math.Abs(this.Top)); autoScrollPos.X += x; autoScrollPos.Y += y; this.Width *= 2; this.Height *= 2; parent.AutoScrollPosition = autoScrollPos; parent.VerticalScroll.SmallChange *= 2; parent.HorizontalScroll.SmallChange *= 2; parent.VerticalScroll.LargeChange *= 2; parent.HorizontalScroll.LargeChange *= 2; this.Invalidate(); this.Focus(); // parent.ResumeDrawing(); parent.Invalidate(); }