我有PictureBox picture。我使用:
PictureBox picture
picture.Size = bmp.Size; picture.Image = bmp;
假设有两个整数maxWidth和maxHeigth。当picture的大小超过maxWidth和/或maxHeight时,我想在picture上添加垂直/水平滚动条。我该怎么做?
maxWidth
maxHeigth
picture
maxHeight
af7jpaap1#
您可以使用Panel控件轻松完成此操作在窗体中插入一个面板,例如panel1并设置panel1.AutoScroll = true;插入一个PictureBox到Panel,比如图片和设置
Panel
panel1.AutoScroll = true;
PictureBox
picture.SizeMode = PictureBoxSizeMode.AutoSize;
并设置图像
picture.Image = bmp;
ztyzrc3y2#
在这个项目中,一个人构建了一个ImagePanel用户控件,您可以将其拖放到窗体上;它提供滚动条和缩放功能。http://www.codeproject.com/KB/graphics/YLScsImagePanel.aspx
ImagePanel
qvsjd97n3#
我还在面板控件中放置了一个图片框,将面板的AutoScroll属性设置为True,但也将面板的Autosize属性设置为True,并将面板的Dock属性设置为Fill,从而使其工作(当用户调整窗体大小时,面板也是如此)对于Picturebox,我将其Dock属性设置为None,和sizemode自动调整大小(所以它也调整大小时,面板和窗体调整大小。它的工作就像一个魅力,图片框有滚动条,当用户调整窗体大小-一切仍然放置正确!
uttx8gqw4#
另一个建议是将图片框放在FlowlayoutPanel中。将FlowlayoutPanel的Auto scroll设置为true,并将图片大小模式设置为normal使用FlowlayoutPanel可确保图像始终位于面板中的0,0处
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);
5条答案
按热度按时间af7jpaap1#
您可以使用
Panel
控件轻松完成此操作在窗体中插入一个面板,例如panel1并设置
panel1.AutoScroll = true;
插入一个
PictureBox
到Panel
,比如图片和设置并设置图像
ztyzrc3y2#
在这个项目中,一个人构建了一个
ImagePanel
用户控件,您可以将其拖放到窗体上;它提供滚动条和缩放功能。http://www.codeproject.com/KB/graphics/YLScsImagePanel.aspx
qvsjd97n3#
我还在面板控件中放置了一个图片框,将面板的AutoScroll属性设置为True,但也将面板的Autosize属性设置为True,并将面板的Dock属性设置为Fill,从而使其工作(当用户调整窗体大小时,面板也是如此)对于Picturebox,我将其Dock属性设置为None,和sizemode自动调整大小(所以它也调整大小时,面板和窗体调整大小。它的工作就像一个魅力,图片框有滚动条,当用户调整窗体大小-一切仍然放置正确!
uttx8gqw4#
另一个建议是将图片框放在FlowlayoutPanel中。
将FlowlayoutPanel的Auto scroll设置为true,并将图片大小模式设置为normal
使用FlowlayoutPanel可确保图像始终位于面板中的0,0处
m3eecexj5#
对我很管用。