winform子容器随父容器的变化设置

时间:2024-05-05 00:03:25

在设计winform窗体时,因为会很少去调整窗体的大小,这时子控件就会出很尴尬的情况,

通过查看空间的属性,发现有这样两个属性,dock和anchor。这里主要说anchor,官方

解释没太看懂,我的理解是设置那个边框与窗体的固定距离不变,它给出的值是标志枚举,

所以可以通过或(|)运算来同时设置多个值,如果设置上下左右都固定不变,则不管窗体怎

么变,子容器都能适应。这里就像是移动web的设置,通过百分比来的设置控件的大小,那

么子容器就会跟随父容器的变化而相对变化。

initPicBox.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;

dock设置的是停靠,给出的值是普通枚举,所以只能同时拥有一

中值,若同级容器设置了相同是属性,则会互相堆叠。

initPicBox.Dock = DockStyle.Top;

winform子容器随父容器的变化设置

我这里同时还用到了PictrueBox控件,其中也有相关的设置,因为图片的大小不一定符合

PictureBox的大小,所以要进行设置,这里主要介绍使图片填充完PictureVBox。

这里有两个可选项,zoom和strecthImage

initPicBox.SizeMode = PictureBoxSizeMode.Zoom;//以图片原来的长宽比缩放

winform子容器随父容器的变化设置

由图可知:

设置为Zoom时,图片按比例放大到PictureBox相对较小的的边就停止放大或缩小。

并将次作为显示图片的大小。

initPicBox.SizeMode = PictureBoxSizeMode.Zoom;//以PictureBox的长宽比缩放,

也就是填满PictureBox不会让源图片的信息减少。只是可能会改变原来的长宽比值。