【问题标题】:How to add new rows at top programmatically in WPF grid (.NET5) [closed]如何在 WPF 网格(.NET5)中以编程方式在顶部添加新行 [关闭]
【发布时间】:2021-11-11 05:40:13
【问题描述】:

我正在使用带有 .NET5 的 WPF 来开发一个 Windows 应用程序,我在其中使用 Grid 来显示一些内容,并且我需要以编程方式在网格顶部添加一个新行。

我考虑的一种方法是修改每个现有行的行号,但这是一项繁琐的任务。我正在使用网格来显示内容,因为网格会随着主窗口的扩展而动态扩展,而据我所知,其他容器不会显示这种行为。

我考虑的另一种方法是使用 gridName.Childern.Insert() 插入一行,但它会插入并覆盖现有行。

我需要一种解决方案,既可以在网格顶部动态添加新行而不重叠,也可以在最大化主窗口的同时扩展其他容器,例如 Stack Panel 和 Dock Panel。

有没有其他有效的方法来实现这个功能?

【问题讨论】:

  • 如果要在顶部“插入”一行,则必须在所有子元素上设置 Grid.Row 属性。您还必须更新网格的RowDefinitions。考虑使用更合适的面板,例如一个 StackPanel。
  • 是的!考虑到这一点,但堆栈面板不像网格那样响应。展开窗口时堆栈面板不展开。
  • 然后更新 RowDefinitions 和所有 Grid.Row 设置,如前所述。祝你好运。

标签: .net wpf wpf-controls .net-5


【解决方案1】:

这是一个很烦人的问题。

你必须改变所有的 Grid.Row, Grid.Column

但你可以选择其他的东西

如果你只需要一个方向,你可以使用 StackPanel

如果没有,你应该使用 WrapPanel

【讨论】:

  • 是的!两者都考虑在内,但 Stack Panel 和 Wrap Panel 不像网格那样响应。两者都不会在扩展窗口中展开。
  • @ArunChaulagain 如果 StackPanel 中的每一行都是单行网格,会有帮助吗?
  • @HansKesting 非常感谢。我遵循了类似的方法。我使用堆栈包和内部堆栈面板我使用网格。最后通过使 Horizo​​intalAlignment="Stretch" 成功。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-05
  • 2023-03-24
  • 2018-07-23
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
相关资源
最近更新 更多