当表单最大化时,如何使窗体上的所有控件扩展并按比例增加大小

本文关键字:扩展 控件 按比例 增加 最大化 表单 窗体 何使 | 更新日期: 2023-09-27 17:56:56

我在设计时在IDE中有一个相当大的表单(905 X 813)。

我添加了此代码以使表单全屏显示:

private void Form1_Load(object sender, EventArgs e)
{
    TopMost = true;
    FormBorderStyle = FormBorderStyle.None;
    WindowState = FormWindowState.Maximized;
}

。但是控件拥抱西北角,仍然留下了很多"死角",因为形式被磁化到西北角,而不是其控件的大小越来越大。

如何让控件向各个方向扩展,填满整个屏幕?

这不需要考虑不同的显示器尺寸等 - 它只是一个模型。

试图将外部面板的锚属性设置为中间/"全部"设置,但它不允许我 - 它停留在"顶部,左侧"?!?......

当表单最大化时,如何使窗体上的所有控件扩展并按比例增加大小

我不太清楚...您可以使用 ANCHOR,启用 LEFT 和 RIGHT 使控件向右增长,并禁用 LEFT 使其在窗体中"遍历"。当然,在每个控件上执行任务,您将为它们实现理想的位置/大小。

无论如何,您可以使用变量手动索引所有控件的所有位置和大小,以获取宽度和高度并计算一种索引。这是一项艰巨的任务,但它使您能够精确控制每个控制位置和高度。

Bu 如果您想重新显示保持所有比例的控件(我的意思是,更改它们的 FONT 大小),也许这段代码可以帮助您:http://www.codeproject.com/Tips/1025766/VB-NET-Dynamically-Resize-and-Reposition-All-Contr

通常,在 WPF 中,我将所有控件放在一个Grid中,每个控件都占据其行和列的位置。我通过将每个控件的大小设置为Auto来将每个控件的大小"锁定"到其位置。然后我"锁定"(size="Auto")整个网格与其父级表单。这样,当窗体展开时,网格会扩展,其所有行/列都会扩展,等于 => 因此,所有控件都平等地遵循扩展。

在Winform中,您可以确定TableLayoutPabel即WPF中网格的等价物。现在,如果锚定到所有 4 个边,控件将根据其父级(在本例中为槽)的大小保留其大小比。因此,当窗体增长时,插槽也会增长,因此强制所有控件在 SIZE 中增长。