【发布时间】:2018-07-31 15:24:06
【问题描述】:
我有一个正在调整大小的图片框,我需要它来保持 1:1 的纵横比。基本上宽度和高度都与用户调整大小相同。调整大小工作正常,但纵横比不保持。我该如何更改它以包括保持纵横比?
这是调整控件大小时调用的内容
Private Sub pbsMouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If mouseOnHandle Then
ReleaseCapture()
SendMessage(activeControl.Handle, WM_NCLBUTTONDOWN, CInt(DirectCast(sender, PictureBox).Tag), 0)
If GetCapture = 0 Then mouseOnHandle = False
Application.DoEvents()
End If
End Sub
ReleaseCapture()
<DllImport("user32.dll")> _
Public Shared Function ReleaseCapture() As Boolean
End Function
常量和函数
Public Declare Function GetCapture Lib "user32" Alias "GetCapture" () As Integer
Private Const WM_NCLBUTTONDOWN As Integer = &HA1
【问题讨论】:
-
显示图像的大小与picturebox的大小(或比例)关系不大。另外,1:1 意味着一个正方形......这可能不是你的意思
-
您可以将
PictureBox的SizeMode设置为Zoom。这样,通过改变PictureBox的大小,图像的大小在保持大小比例的情况下增加或减少。 -
我将图片框设置为拉伸,以便整个图像适合里面。我的意思是 1:1。我正在调整 QR 码的大小,应该是正方形
-
根据您的规格,您不需要拉伸。
-
也许我的问题并不清楚。我希望保持实际图片框控件的纵横比。因此,如果用户调整它的大小,它的宽度和高度都会增加/减少。我需要在图片框中显示整个二维码,所以我选择了拉伸。我不确定更改 SizeMode 对此有何帮助?