【问题标题】:Make UserControl resize when Dock = Fill当 Dock = Fill 时使 UserControl 调整大小
【发布时间】:2011-03-17 11:55:52
【问题描述】:

我正在制作的UserControl 有问题。它由TableLayoutPanel 和另一个TableLayoutPanelListView 组成。我想让它调整大小,以便它适合我的应用程序的左侧面板,并且表现得有点像 Visual Studio 中的工具箱。问题是当我调整面板大小时我的控件无法缩放。

UserControl 嵌入在带有Dock = FillAnchor = Tob, Left, Bottom, Right 的面板中。此外,其中的所有控件都是以这种方式制作的。我该如何解决这个问题?

编辑:这是 WinForms,而不是 XAML。

【问题讨论】:

  • 您能从您的 XAML 中发布相关信息吗?编辑:哎呀,对不起无知:)
  • 这是 WinForms,而不是 XAML。
  • OP 正在使用 WinForms。因此,没有 XAML。
  • TableLayoutPanel 属性很重要。您必须停靠或锚定它,以便它随着用户控件的增长而增长。等等。

标签: c# .net winforms user-interface


【解决方案1】:

使用拆分面板并将您的UserControl 放在左侧面板中,然后将Dock.Fill 放在它上面。

【讨论】:

  • 这不是一个解决方案,UserControl 已经在SplitPanel 中。下方面板中的PropertyGrid 可以很好地调整大小,而我的则没有。
  • 您没有说它在 SplitPanel 中。鉴于您的描述,这是我能做出的最佳猜想。也许您应该详细说明并发布一些代码?
【解决方案2】:

您可能正在寻找 TableLayoutPanel 上的 AutoSize 属性和该面板的 AutoSize ColumnType。 您可以通过简单地自动调整表格布局面板 (GrowAndShrink) 的大小来实现类似 Dock = Fill 的功能,使其始终适合您的内部控件。 请发布您的设计器代码,看看您是如何将控件嵌入到其他控件中的。

【讨论】:

    【解决方案3】:

    我怀疑您的调整大小问题来自您在 TableLayoutPanel 内的调整大小控制策略。

    表格布局面板很棘手。关于您想要在inside表格面板的单元格中遵循的调整大小策略,单元格中的控件必须是 Dock.Fill 或 Anchor = Top, Left, Bottom, Right。

    基本上:

    • 如果您希望网格单元格适应控件的大小,则让单元格中的控件 Anchor = Top, Left, Bottom, Right 并将行/列设置为自动调整大小。

    • 如果您希望单元格中的控件适应单元格大小,请在其上使用 Dock.Fill 并使用百分比或绝对值来调整单元格大小。

    TableLayoutPanel 的行为最好在the MSDN documentation 中描述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多