/// <summary> /// Zooming out and in via mouse wheel handler /// </summary> private void PictureViewerFormMain_MouseWheel(object sender, MouseEventArgs e) { double modifier = 1.0 + 1.0 / ((double)e.Delta / 30.0); zoom *= modifier; if (GraphSettings.ImageWidth * zoom <= Width && zoom < 1) { zoom = (double)PictureBoxMain.Width / (double)GraphSettings.ImageWidth; } int lastW = PictureBoxMain.Width; int lastH = PictureBoxMain.Height; PictureBoxMain.SuspendLayout(); PictureBoxMain.Width = (int)(GraphSettings.ImageWidth * zoom); PictureBoxMain.Height = (int)(GraphSettings.ImageHeight * zoom); PictureBoxMain.Left = (int)(PictureBoxMain.Location.X + (lastW - GraphSettings.ImageWidth * zoom) / 2); PictureBoxMain.Top = (int)(PictureBoxMain.Location.Y + (lastH - GraphSettings.ImageHeight * zoom) / 2); PictureBoxMain.ResumeLayout(); }