vb.net - 使用缩放和偏移平移一个点(带有 AutoScroll 的面板)
问题描述
我创建了一个用户扫描图像的应用程序。
扫描的图像显示在 BackgroundImageTileMode = Stretch 的图片框中,此图片框放置在 AutoScroll=true 的 Panel 中。
单击图像,用户可以在图像上放置标签。我在运行时将它们添加到 MouseUp 位置,如下所示:
Private Sub picScannedImage_MouseUp(sender As Object, e As MouseEventArgs) Handles picScannedImage.MouseUp
Dim nNewLabel As New Label
With nNewLabel
.AutoSize = True
.Text = "aA"
.Location = New Point(e.X, e.Y - .Height)
End With
Me.picScannedImage.Controls.Add(nNewLabel)
nNewLabel.Location = New Point(e.X, e.Y - nNewLabel.Height)
_ListOfAllLabels.Add(nNewLabel) 'so that I know where the user clicked / where he wants the labels to be
End Sub
用户稍后可以将扫描的图像导出为 PDF,我会将文本字段放在用户单击的位置。这样,PDF 将是可编辑的。
由于扫描的图像可能很大,我为用户提供了放大的选项。在放大时,我调整了图片框的大小。面板将检测图片框是否太大而无法完全显示,并显示滚动条。用户可以使用滚动条来滚动图像。
当用户放大时,我需要重新定位标签。此外,当用户现在点击某处时,我需要添加一个新标签。但是,我需要考虑到图像被缩放并且图像被移动(因为图像被滚动)。如何计算此缩放和滚动图像中标签的位置?
我还想问我如何方便地计算“真实”点击位置(=如果图像未缩放且未滚动,用户将点击的位置)。
谢谢!
解决方案
推荐阅读
- python - Google Places API,如何获得下 20 个结果?
- r - 如何使用变量作为ggplot的参数?
- javascript - 从选择元素中选择选项时,控制台日志加倍
- javascript - 使用 JavaScript 获取 textarea 值并将其插入到地图上
- ios - 如何在烛台图表的蜡烛顶部和底部绘制自定义视图
- sql - 访问数据库。VBA 查询
- objective-c - 如何用同一个对象(NSString)填充整个 NSMutableArray
- spring-boot - 如何在 feign client spriong Boot 中设置值
- python - 无法将超链接上传到列类型为超链接或图片的 SharePoint Online 列表
- nginx - 如何让 Kubernetes 服务负载均衡基于客户端 IP 而不是 NGINX 反向代理 IP