【问题标题】:C# - Responsive Winforms application positioning of pictureboxesC# - 图片框的响应式 Winforms 应用程序定位
【发布时间】:2017-10-17 15:12:53
【问题描述】:

我目前正在尝试创建一个响应式 winforms 应用程序。

我尝试归档的内容:

我想创建一个具有响应式 UI 的 winforms 布局。

我的问题是什么:

我在 TableLayoutPanel 的第一行添加了三个图片框(关闭按钮/最小化应用程序按钮/最大化应用程序按钮)。

这三个图片框位于表单的右上角。但是一旦我单击最大化按钮,这些图片框的位置就不会改变。他们停留在确切的位置,这使得他们在最大化的屏幕上真正居中。

截图:

我能做些什么来解决这个问题?我感谢任何形式的建议和帮助。

到目前为止我做了什么:

  1. 添加了一个包含 2 行的 TableLayoutPanel。
  2. 在包含图片框的第一行添加了一个面板。
  3. 向图片框添加了另外 3 个图片框,它们是屏幕截图中显示的用于关闭/最小化/最大化应用程序的按钮。

【问题讨论】:

  • 将那些图标图片框停靠在容器的右侧。你也可以为他们使用TopRight的锚点。

标签: c# winforms


【解决方案1】:

首先,TableLayoutPanel 是一个非常糟糕的控件。一旦获得太多列或行,就很难处理一个明显的性能问题。我建议使用两个常规面板,一个使用Dock = Top,另一个使用Dock = Fill。 至于您的按钮,我会将它们放置在顶部面板内,并将它们的锚属性设置为 Top 和 Right。

进一步阅读:

Control.Dock 属性。
Control.Anchor 属性。

【讨论】:

  • 由于用户正在寻找通常需要相对大小(百分比)的响应能力,因此TableLayoutPanel 似乎是一个不错的选择。
  • 仅当只有几个单元格时。我以前用过大约 10 列和 6 行,性能很糟糕。不得不将其删除并将所有标签放在自己体内。
【解决方案2】:

您应该将它们锚定在其容器的右侧。你可能应该看看这个: https://msdn.microsoft.com/en-us/library/system.windows.forms.control.anchor(v=vs.110).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    相关资源
    最近更新 更多