Jon*_*Jon 11 .net c# picturebox winforms
我试图使它成为PictureBox控件中的图像将根据窗口的大小自动调整其大小,但保持纵横比.到目前为止,只是设置SizeMode
为StretchImage
使图像拉伸以适合整个PictureBox控件.这忽略了纵横比,这不是我想要的.
是否可以保持纵横比,但仍然可以将图像拉伸到表格尺寸变化时可以动态移动的最大值?是否可以这样做,并让它仍然居中?我想每次调整窗口大小时我都可以在内存中重新创建图像,但这似乎是一个坏主意.
Cod*_*ray 16
我相信这是影响PictureBoxSizeMode.Zoom
.文件说:
保持尺寸比,增大或减小图像的尺寸.
你在PictureBox.SizeMode
房产上设置了这个.该功能文档的"备注"部分还说:
使用"缩放"值可以拉伸或缩小图像以适合PictureBox; 但是,保持原件的纵横比.
当然,您可以PictureBox.SizeMode
在设计器的"属性"窗口或代码中设置属性(例如,在表单的构造函数中):
myPictureBox.SizeMode = PictureBoxSizeMode.Zoom;
Run Code Online (Sandbox Code Playgroud)
如果这不能完全符合您的要求,您可以自己实现调整大小逻辑.你担心的是每次控件调整大小时在内存中重新创建图像"似乎是一个坏主意",但我不确定为什么它对你来说似乎是这样.唯一的问题是如果你不小心摧毁未使用的图形对象,比如旧的Bitmap
.这些对象不仅包含需要释放的非托管资源,如果只是让它们泄漏,你将开始对内存施加极大的压力.
或者,为了避免创建临时位图,您可以执行PictureBox控件可能在内部执行的操作并使用该Graphics.DrawImage
方法来处理拉伸.如果您传递一个矩形,它将自动缩放图像以适合矩形内部.
归档时间: |
|
查看次数: |
41766 次 |
最近记录: |