【问题标题】:how to keep objects in place when window is resized in C#在 C# 中调整窗口大小时如何将对象保持在原位
【发布时间】:2012-10-09 23:41:05
【问题描述】:

如何在调整窗口大小时将窗口的对象(按钮、标签等)保持在中心?

目前,我在 Windows 窗体中有 3 个按钮。当我最大化窗口时,按钮停留在窗口的左上角。我希望它们像窗口未最大化时一样位于中心。

有什么帮助吗?

【问题讨论】:

  • 如果不需要,您可以禁用“最大化”选项... :)

标签: c# winforms resize window


【解决方案1】:

要保持布局固定并位于中间,请执行以下操作:

  1. 在您的Form 上添加TableLayoutPanel
  2. 将其Dock 属性设置为Fill
  3. 创建 3 行 3 列。
  4. 编辑行和列 - 为第一列和最后一列和行设置 50%。
  5. 为中间行和列设置固定大小。
  6. Panel 或您喜欢的任何其他内容放在第二行和第二列。它总是在中间。

【讨论】:

    【解决方案2】:

    您应该将对象的 Anchor 属性设置为 none

    这会让它保持在中间。

    【讨论】:

    • 除了将对象保持水平居中外,如果您还需要在垂直展开窗口时将对象保持在屏幕底部,请将锚点设置为底部而不是无。跨度>
    【解决方案3】:

    正确设置控件的Anchor 属性。默认情况下,您的控件锚定到Top,Left。如果您清除此属性(基本上是无锚),您的按钮将保持居中。

    (看起来您想锚定到所有四个边,但实际上这会调整您的按钮大小以填充表单!)

    【讨论】:

    • 我做到了。谢谢。但它没有调整按钮的大小。当我最大化窗口时,按钮的大小与以前相同。有什么办法让按钮也以相同的比例增加它们的大小?
    • 如果您将Anchor 设置为Top, Left, Bottom, Right,那么按钮将随着您调整表单大小而调整大小,但它不会保持与表单相同的比例(即,它将调整与表单相同的像素数)。如果您想将按钮的大小保持为表单大小的固定百分比,则需要手动编写代码。
    【解决方案4】:

    如果您正在使用 Visual Studio 的可视化设计器(而且您没有理由不这样做),您试图管理它们在表单中的放置方式的控件属性是“锚点”。 默认情况下,当您创建新控件时,它设置为“左上角”,这意味着它们将保持在表单左上角的固定位置。您可以更改它以将它们锚定到任何东西。

    您还可以通过覆盖表单的 Resize 方法来禁用锚点并控制它们的位置。

    【讨论】:

      猜你喜欢
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多