Beispiel #1
0
        /// <summary>
        /// マウスホイールイベント(画像の拡大縮小)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void picImage_MouseWheel(object sender, MouseEventArgs e)
        {
            bool shiftKeyFlg = false;

            if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
            {
                shiftKeyFlg = true;
            }


            if (e.Delta > 0)
            {
                if (shiftKeyFlg)
                {
                    // ポインタの位置周りに回転
                    _matAffine.RotateAt(5f, e.Location, System.Drawing.Drawing2D.MatrixOrder.Append);
                }
                else
                {
                    // 拡大
                    // ポインタの位置周りに拡大
                    _matAffine.ScaleAt(1.5f, e.Location);
                }
            }
            else
            {
                if (shiftKeyFlg)
                {
                    // ポインタの位置周りに回転
                    _matAffine.RotateAt(-5f, e.Location, System.Drawing.Drawing2D.MatrixOrder.Append);
                }
                else
                {
                    // 縮小
                    // ポインタの位置周りに縮小
                    _matAffine.ScaleAt(1.0f / 1.5f, e.Location);
                }
            }
            // 画像の描画
            RedrawImage();
        }