我在面板中有PictureBox
图片框Dock = DockStyle.Fill
。
当我将图片分配到PictureBox
时,图片会拉伸水平以适应可用空间,并需要一个垂直滚动条来滚动图像。我不需要水平滚动条。
请不要将此问题视为重复..我已经明确提到我只需要垂直滚动条以及面板的运行时调整大小选项。
注意:面板大小可能会在运行时更改(因此,显然也是PictureBox
大小)。
请帮帮我。
答案 0 :(得分:1)
此解决方案使用一个简单的resize方法,只要它应该更新它的大小就可以调用。
先决条件:
关闭PictureBox的停靠
将Panel的AutoScroll属性设置为true
调整大小的方法:
private void panel1_Resize(object sender, EventArgs e)
{
ResizePb();
}
private void ResizePb()
{
//Make the pciturebox as wide as the panel, keep in mind the scrollbars
pictureBox1.Width = panel1.Width - SystemInformation.VerticalScrollBarWidth - 5;
//Calculate the aspect ratio of the image based on its new width
var aspect = (double)panel1.Width / pictureBox1.Image.Width;
//Set height according to aspect ratio
var height = Convert.ToInt32(aspect * pictureBox1.Image.Height);
pictureBox1.Height = height;
}