如何调整Picturebox的大小,以便在图像大小小于显示器大小时显示完整图像!我写了一个无法调整(但仍然发布代码)的代码!
在点击按钮上加载图片之前的代码
Dim bmp As Bitmap
bmp = New Bitmap(path)
If bmp.Width < picBox.Image.Width Then picBox.Width = bmp.Width : If bmp.Height < picBox.Image.Height Then picBox.Height = bmp.Height
picBox.Invalidate() : picBox.Refresh()
'picBox.SetBounds(x,y,width,height)
代码没有调整图片框的大小,它只是不受影响!
表单只有picBox和groupbox [dock enabled]控件。
bmp = New Bitmap(dlgOpen.FileName)
picBox.SizeMode = PictureBoxSizeMode.Normal
Dim w As Integer = picBox.ClientSize.Width
Dim h As Integer = picBox.ClientSize.Height
If bmp.Width > w Then
w = bmp.Width
End If
If bmp.Height > h Then
h = bmp.Height
End If
If w > Me.Width - grpBox.Width Then
w = Me.Width - grpBox.Width
End If
If h > grpBox.Height Then
h = grpBox.Height
End If
picBox.ClientSize = New Size(w, h)
picBox.ImageLocation = dlgOpen.FileName
此代码不会重新调整图片框的大小。
答案 0 :(得分:3)
在.NET中,Public Enumeration PictureBoxSizeMode
允许您更改PictureBox处理不同大小图像的方式:
您可以通过.SizeMode
属性为当前PictureBox设置它。 AutoSize
可能就是你要找的东西。如果它大于窗口或框架,则必须在PictureBox.Resize
事件中处理此事件,以调整窗口大小或重新缩放图像。
所以,它可能是这样的:
Dim bmp As Bitmap
bmp = New Bitmap(path)
picBox.SizeMode = PictureBoxSizeMode.AutoResize
picBox.Image = bmp
答案 1 :(得分:0)
Dim bmp As New Bitmap(path)
PictureBox1.SizeMode = PictureBoxSizeMode.Normal
Dim w As Integer = PictureBox1.ClientSize.Width
Dim h As Integer = PictureBox1.ClientSize.Height
If bmp.Width > w Then
w = bmp.Width
End If
If bmp.Height > h Then
h = bmp.Height
End If
If w > maxWidth Then
w = maxWidth
End If
If h > maxHeight Then
h = maxHeight
End If
PictureBox1.ClientSize = New Size(w, h)
PictureBox1.Image = bmp
答案 2 :(得分:0)
在加载图片之前,图片框只能重新调整大小,只有它是只读后才有效!