是否可以在没有水平滚动条的情况下在 PictureBox 中拉伸图片,而在 WinForms 中只有垂直滚动条?
Is it possible to stretch picture in PictureBox without horizontal scrollbar and only Vertical scrollbar in WinForms?
我在带有图片框的面板内有一个 PictureBox
Dock = DockStyle.Fill
。
当我将图片分配到 PictureBox
时,图片被水平拉伸以适应可用的 space,并且需要一个垂直滚动条来滚动图像。我不需要水平滚动条。
请不要重复这个问题。我已经明确提到我只需要垂直滚动条和面板的 运行 时间调整选项。
注意:面板大小可能会在 运行 时更改(因此,显然 PictureBox
大小也会更改)。
请帮帮我。
此解决方案使用简单的调整大小方法,您可以在需要更新其大小时调用该方法。
先决条件:
关闭 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;
}
我在带有图片框的面板内有一个 PictureBox
Dock = DockStyle.Fill
。
当我将图片分配到 PictureBox
时,图片被水平拉伸以适应可用的 space,并且需要一个垂直滚动条来滚动图像。我不需要水平滚动条。
请不要重复这个问题。我已经明确提到我只需要垂直滚动条和面板的 运行 时间调整选项。
注意:面板大小可能会在 运行 时更改(因此,显然 PictureBox
大小也会更改)。
请帮帮我。
此解决方案使用简单的调整大小方法,您可以在需要更新其大小时调用该方法。
先决条件:
关闭 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;
}