winform 以光标指向点为中心 通过鼠标滚轮对图片进行缩放

最近一个项目需要涉及到图片的全屏显示以及缩放拖动功能,其中缩放实现需要考虑的一点就是为了有更好的用户体验,需要在缩放的时候以光标所处位置为参考点,进行缩放操作,简单来说就是,缩放前后光标在图片上所处的位置保持不变。

  • 实现原理:把图片放在picturebox中,通过一系列调整,使图片完全占满box,每次通过改变box的size来使得图片放大缩小,然后再通过改变box的locaton使得光标位置不变。具体算法就是基本的数学运算了,通过相似三角形求的locaton应该移动的向量,做出位置改变。
void pictureBox1_MouseWheel(object sender, MouseEventArgs e)//鼠标滚轮事件
        {
            double step = 1.2;//缩放倍率
            if (e.Delta > 0)
            {
                if (pictureBox1.Height >= Screen.PrimaryScreen.Bounds.Height*
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值