Ejemplo n.º 1
0
        public void _miView_Click(object sender, System.EventArgs e)
        {
            // get the current center in logical units
            ImageViewer viewer = ActiveViewerForm.Viewer; // get the active viewer

            // zoom
            double          scaleFactor = viewer.ScaleFactor;
            ControlSizeMode sizeMode    = ControlSizeMode.None;
            const float     ratio       = 1.2F;

            if (sender == _miViewZoomIn)
            {
                sizeMode     = ControlSizeMode.None;
                scaleFactor *= ratio;
            }
            else if (sender == _miViewZoomOut)
            {
                sizeMode     = ControlSizeMode.None;
                scaleFactor /= ratio;
            }
            else if (sender == _miViewNormal)
            {
                sizeMode    = ControlSizeMode.ActualSize;
                scaleFactor = 1.0;
            }
            else if (sender == _miViewFitToWindow)
            {
                sizeMode    = ControlSizeMode.Fit;
                scaleFactor = 1.0;
            }
            else if (sender == _miViewSnapToImage)
            {
                ViewerForm activeViewer = ActiveViewerForm;
                activeViewer.Snap();
                if (activeViewer.WindowState != FormWindowState.Normal)
                {
                    activeViewer.WindowState = FormWindowState.Normal;
                }
            }

            scaleFactor = Math.Max(_minimumScaleFactor, Math.Min(_maximumScaleFactor, scaleFactor));

            if ((viewer.ScaleFactor != scaleFactor) || (viewer.SizeMode != sizeMode))
            {
                viewer.Zoom(sizeMode, scaleFactor, viewer.DefaultZoomOrigin);
            }
        }