是否可以在没有水平滚动条的情况下在 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;
}