コード例 #1
0
        /// <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();
        }