Foxtable(狐表)用户栏目专家坐堂 → picturebox的缩放位置问题


  共有5256人关注过本帖树形打印复制链接

主题:picturebox的缩放位置问题

帅哥哟,离线,有人找我吗?
kan6465
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:63 积分:558 威望:0 精华:0 注册:2013/7/25 9:30:00
picturebox的缩放位置问题  发帖心情 Post By:2014/1/23 10:03:00 [只看该作者]

请问大大

如果我要代码缩放的picturebox
怎么令到这个picturebox的中心位置不变呢,也就是向四周扩张
现在默认的是想下右扩张,这样会影响到旁边的picturebox

在不用重新设置位置的情况下,有模式可以设置吗,可以做到吗

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/23 10:05:00 [只看该作者]

使用代码计算一下,你扩展的幅度.然后移动起始点即可.

比如你原本 left=50  top=50    图片大小50*50  然后你增大为100*100  你可以设置 left=25 top=25 这样就中心点不变了.

 回到顶部
帅哥哟,离线,有人找我吗?
kan6465
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:63 积分:558 威望:0 精华:0 注册:2013/7/25 9:30:00
  发帖心情 Post By:2014/1/23 10:13:00 [只看该作者]

这样很不方便

如果我有50个picture位置都不同呢 

最好有缩放的对齐模式可以设置呢 

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/23 10:17:00 [只看该作者]

大哥,可以计算的啊. 不要那么死板啊.
例如点击图片放大,保持中心,只需要在Click事件里放入如下代码.   有多个图片控件,在窗口全局事件写即可.
Dim w As Integer=e.Sender.Width
Dim h As Integer=e.Sender.Height
e.Sender.Width=e.Sender.Width*2
e.Sender.Height=e.Sender.Height*2
e.Sender.Left=e.Sender.Left-(e.Sender.Width-w)/2
e.Sender.Top=e.Sender.Top-(e.Sender.Height-h)/2

 回到顶部
帅哥哟,离线,有人找我吗?
kan6465
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:63 积分:558 威望:0 精华:0 注册:2013/7/25 9:30:00
  发帖心情 Post By:2014/1/23 10:29:00 [只看该作者]

好的 学到东西了
谢谢大大图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/1/23 10:30:00 [只看该作者]

.
图片点击可在新窗口打开查看此主题相关图片如下:123.gif
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.table



 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/1/23 10:45:00 [只看该作者]

Dim w As Integer = e.Sender.Width
Dim h As Integer = e.Sender.Height
Dim l As Integer = e.Sender.Left
Dim t As Integer = e.Sender.Top
e.Sender.Width = e.Sender.Width * 1.1
e.Sender.Height = e.Sender.Height * 1.1
'e.Sender.Width = e.Sender.Width * 0.9
'e.Sender.Height = e.Sender.Height * 0.9
e.Sender.Left = l + (w - e.Sender.Width) / 2
e.Sender.Top = t + (h - e.Sender.Height) / 2

 回到顶部