当窗体最大化时,如何让窗体上的所有控件展开并按比例增加大小?
How can I get all controls on a form to expand out and increase proportionally in size when form is maximized?
我有一个在设计时 IDE 相当大的表单 (905 X 813)。
我添加了这段代码使表单全屏显示:
private void Form1_Load(object sender, EventArgs e)
{
TopMost = true;
FormBorderStyle = FormBorderStyle.None;
WindowState = FormWindowState.Maximized;
}
...但是控件紧靠西北角并且仍然留下很多 "dead space",因为表单被磁化到西北角,而不是其控件的大小增加。
如何让控件向各个方向展开,填满整个屏幕?
这不需要考虑不同的显示器尺寸等 - 它只是一个模型。
我试图将外部面板的锚 属性 设置为中间/"all" 设置,但它不允许我 - 它停留在 "Top, Left"...?! ?
我不太清楚...您可以利用 ANCHOR,启用 LEFT 和 RIGHT 使控件向右方向增长,并禁用 LEFT 使其通过表单 "walk"。当然在每个控件上做一个任务你会为他们实现理想的position/size。
总之,您可以手动索引所有控件的所有位置和大小,使用变量获取WIDTH和HEIGHT并计算一种索引。这是一项艰巨的任务,但它使您能够准确控制每个控件的位置和高度。
但是如果你想重新调整控件以保持所有比例(我的意思是,改变它们的字体大小),也许这段代码可以帮助你:http://www.codeproject.com/Tips/1025766/VB-NET-Dynamically-Resize-and-Reposition-All-Contr
通常,在 Wpf 中,我将所有控件放在 Grid
中,每个控件都占据其行和列的位置。我 "lock" 通过将每个控件的大小设置为 Auto
来将每个控件的大小调整到它的位置。然后我 "lock" (size="Auto"
) 整个网格及其父表单。这样,当窗体展开时,网格展开,其所有 rows/columns 均等地展开 => 因此所有控件均等地展开。
在 Winform 中,您可以使用 TableLayoutPabel
,它相当于 Wpf 中的 Grid。现在,如果您锚定到所有 4 个边,控件将根据其父项(在本例中为插槽)的大小保留其大小比例。因此,当窗体变大时,插槽也会变大,从而迫使所有控件的 SIZE 变大。
我有一个在设计时 IDE 相当大的表单 (905 X 813)。
我添加了这段代码使表单全屏显示:
private void Form1_Load(object sender, EventArgs e)
{
TopMost = true;
FormBorderStyle = FormBorderStyle.None;
WindowState = FormWindowState.Maximized;
}
...但是控件紧靠西北角并且仍然留下很多 "dead space",因为表单被磁化到西北角,而不是其控件的大小增加。
如何让控件向各个方向展开,填满整个屏幕?
这不需要考虑不同的显示器尺寸等 - 它只是一个模型。
我试图将外部面板的锚 属性 设置为中间/"all" 设置,但它不允许我 - 它停留在 "Top, Left"...?! ?
我不太清楚...您可以利用 ANCHOR,启用 LEFT 和 RIGHT 使控件向右方向增长,并禁用 LEFT 使其通过表单 "walk"。当然在每个控件上做一个任务你会为他们实现理想的position/size。
总之,您可以手动索引所有控件的所有位置和大小,使用变量获取WIDTH和HEIGHT并计算一种索引。这是一项艰巨的任务,但它使您能够准确控制每个控件的位置和高度。
但是如果你想重新调整控件以保持所有比例(我的意思是,改变它们的字体大小),也许这段代码可以帮助你:http://www.codeproject.com/Tips/1025766/VB-NET-Dynamically-Resize-and-Reposition-All-Contr
通常,在 Wpf 中,我将所有控件放在 Grid
中,每个控件都占据其行和列的位置。我 "lock" 通过将每个控件的大小设置为 Auto
来将每个控件的大小调整到它的位置。然后我 "lock" (size="Auto"
) 整个网格及其父表单。这样,当窗体展开时,网格展开,其所有 rows/columns 均等地展开 => 因此所有控件均等地展开。
在 Winform 中,您可以使用 TableLayoutPabel
,它相当于 Wpf 中的 Grid。现在,如果您锚定到所有 4 个边,控件将根据其父项(在本例中为插槽)的大小保留其大小比例。因此,当窗体变大时,插槽也会变大,从而迫使所有控件的 SIZE 变大。