最大化时Windows窗体中的东西移动-C#
时间:2020-03-06 14:56:17 来源:igfitidea点击:
自从我编写了GUI程序以来已经有一段时间了,所以这最终可能会变得非常简单,但是我无法在任何在线位置找到解决方案。
基本上,我的问题是,当我最大化程序时,窗口内部的所有内容(按钮,文本框等)都保持在窗口中的相同位置,这导致底部和右侧附近的空白区域很大。
有没有一种方法可以使程序中的元素按比例缩放?
解决方案
锚和码头属性
在http://msdn.microsoft.com/zh-cn/library/aa289756(VS.71).aspx中查看"动态布局:锚定和停靠"示例
它在VB中,但是所需的概念和属性/方法在C#中相同。
我们要检查并正确设置窗体中每个控件的Anchor和Dock属性。控件上的Anchor属性告诉控件"锚定"到表单的哪一侧(顶部,底部,左侧,右侧)。调整窗体大小后,控件与其锚点之间的距离将保持不变。例如,这使我们可以使控件停留在右下角。
Dock属性指示控件填充整个父窗体或者填充它的一侧(再次是顶部,底部,左侧或者右侧)。
有一些布局面板控件可在表单展开/收缩时使内容保持比例:
TableLayoutPanel
FlowLayoutPanel
As to layouts, I'm not quite sure what you mean, but I'm using Visual Studio 2008's default GUI editor.
我们可以在表单上粘贴一些特殊的"容器"类型面板,例如" FlowLayoutPanel"和" TableLayoutPanel"。这些类型的容器具有其他布局行为。
如果我们发现某些控件在调整大小期间仍然不希望其行为,请使用该控件的右键单击上下文菜单列出该控件的祖先:其父级,其父级的父级等。控件是某些具有自己的布局规则的特殊容器的子代。