vs picturebox 图片缩放

1 篇文章 0 订阅
1 篇文章 0 订阅

想实现一个图片缩放功能。分析后发现使用vs 自带的picture box的功能就能实现。具体思路如下:

把picturebox的sizemode设置成stretch,这样图片加载后会自动按照picturebox的size铺满控件。

只要控制picturebox的控件大小就能实现图片的缩放。

后来考虑到窗体大小是固定的,图片放大太多之后部分图片无法显示,于是把picturebox放到了panel中,

给picturebox添加了拖拽功能,这样图片放大后无法显示的部分可以通过拖拽查看。

而且在picture box中添加了对鼠标滚轮的相应。具体代码如下:

designer

中需要手动添加鼠标滚轮对应的事件:

this.pictureBox1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseWheel);

画面的设计效果如下:

鼠标滚轮事件:

        private void pictureBox1_MouseWheel(object sender, MouseEventArgs e) {
            if (e.Delta > 0)
            {
                pictureBox1.Width += 100;
                pictureBox1.Height += 100;
            }
            else
            {
                pictureBox1.Width -= 100;
                pictureBox1.Height -= 100;
            }
        }

e.Delta用来判断滚轮上滑,下滑。

picturebox的mouse up,mouse down用来保存鼠标拖拽的前后位置。

其中只做了简单的picturebox的移动处理,用mouse up的坐标减去mouse down的坐标来处理picturebox的移动。

        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            textBox2.Text = e.X.ToString();
            textBox4.Text = e.Y.ToString();
            pictureBox1.Left = pictureBox1.Left + (Convert.ToInt32(textBox2.Text) - Convert.ToInt32(textBox1.Text));
            pictureBox1.Top = pictureBox1.Left + (Convert.ToInt32(textBox4.Text) - Convert.ToInt32(textBox3.Text));
        }

打完收工。

 

 

 

 

 

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值