最大化时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"。这些类型的容器具有其他布局行为。

如果我们发现某些控件在调整大小期间仍然不希望其行为,请使用该控件的右键单击上下文菜单列出该控件的祖先:其父级,其父级的父级等。控件是某些具有自己的布局规则的特殊容器的子代。