【发布时间】:2008-09-30 18:14:06
【问题描述】:
我已经有一段时间没有编写 GUI 程序了,所以这最终可能非常简单,但我在网上的任何地方都找不到解决方案。
基本上我的问题是,当我最大化我的程序时,窗口内的所有东西(按钮、文本框等)都停留在窗口中的相同位置,这导致靠近底部和右侧的地方有一个很大的空白区域边。
有没有办法让程序中的元素按比例拉伸?
【问题讨论】:
标签: c# windows user-interface
我已经有一段时间没有编写 GUI 程序了,所以这最终可能非常简单,但我在网上的任何地方都找不到解决方案。
基本上我的问题是,当我最大化我的程序时,窗口内的所有东西(按钮、文本框等)都停留在窗口中的相同位置,这导致靠近底部和右侧的地方有一个很大的空白区域边。
有没有办法让程序中的元素按比例拉伸?
【问题讨论】:
标签: c# windows user-interface
您想检查并正确设置窗体中每个控件的 Anchor 和 Dock 属性。控件上的 Anchor 属性告诉控件被“锚定”到窗体的哪一侧(上、下、左、右)。调整窗体大小时,控件与其锚点之间的距离将保持不变。例如,这使您可以将控件留在右下角。
Dock 属性指示控件填充整个父窗体或填充它的一侧(同样是顶部、底部、左侧或右侧)。
【讨论】:
锚点和 Dock 属性
【讨论】:
在http://msdn.microsoft.com/en-us/library/aa289756(VS.71).aspx查看动态布局:锚定和停靠示例
它在VB中,但是你需要的概念和属性/方法在C#中是相同的。
【讨论】:
有一些布局面板控件可以帮助您在表单展开/收缩时保持比例:
表格布局面板
流布局面板
【讨论】:
至于布局,我不太清楚您的意思,但我使用的是 Visual Studio 2008 的默认 GUI 编辑器。
您可以在表单上粘贴一些特殊的“容器”类型面板,例如FlowLayoutPanel 和TableLayoutPanel。这些类型的容器具有额外的布局行为。
如果您发现您的某些控件在调整大小期间仍然不想表现,那么使用控件的右键单击上下文菜单列出控件的祖先:其父级、其父级的父级等。您可能会发现麻烦的控件是一些特殊容器的子容器,它有自己的布局规则。
【讨论】: