winforms 如何在Picturebox上获得滚动条

8iwquhpp  于 2022-12-27  发布在  其他
关注(0)|答案(5)|浏览(182)

我有PictureBox picture
我使用:

picture.Size = bmp.Size;
picture.Image = bmp;

假设有两个整数maxWidthmaxHeigth
picture的大小超过maxWidth和/或maxHeight时,我想在picture上添加垂直/水平滚动条。我该怎么做?

af7jpaap

af7jpaap1#

您可以使用Panel控件轻松完成此操作
在窗体中插入一个面板,例如panel1并设置
panel1.AutoScroll = true;
插入一个PictureBoxPanel,比如图片和设置

picture.SizeMode = PictureBoxSizeMode.AutoSize;

并设置图像

picture.Image = bmp;
ztyzrc3y

ztyzrc3y2#

在这个项目中,一个人构建了一个ImagePanel用户控件,您可以将其拖放到窗体上;它提供滚动条和缩放功能。
http://www.codeproject.com/KB/graphics/YLScsImagePanel.aspx

qvsjd97n

qvsjd97n3#

我还在面板控件中放置了一个图片框,将面板的AutoScroll属性设置为True,但也将面板的Autosize属性设置为True,并将面板的Dock属性设置为Fill,从而使其工作(当用户调整窗体大小时,面板也是如此)对于Picturebox,我将其Dock属性设置为None,和sizemode自动调整大小(所以它也调整大小时,面板和窗体调整大小。它的工作就像一个魅力,图片框有滚动条,当用户调整窗体大小-一切仍然放置正确!

uttx8gqw

uttx8gqw4#

另一个建议是将图片框放在FlowlayoutPanel中。
将FlowlayoutPanel的Auto scroll设置为true,并将图片大小模式设置为normal
使用FlowlayoutPanel可确保图像始终位于面板中的0,0处

m3eecexj

m3eecexj5#

对我很管用。

PictureBox picture = new PictureBox();
picture.Image=Image.FromFile("image.bmp");
picture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
Panel panel = new Panel();
panel.Size=new Size(800,600);
panel.Location=new Point(0,0);
panel.AutoScroll=true;
panel.Controls.Add(picture);
this.Controls.Add(panel);

相关问题