【问题标题】:UniformGrid Layout统一网格布局
【发布时间】:2013-10-23 16:34:16
【问题描述】:

我知道统一网格不支持行跨度,但它通过覆盖我在 Google 上阅读的方法以某种方式成为可能,但我真的可以使用一个示例如何做到这一点。我想要实现的是类似于这样的布局:

 ----------
|  1  | 2  |
 ----------
|    3     |
 ---------- 

所以基本上我希望第三个孩子跨越 2 列。我可以使用网格,但遗憾的是我不知道如何做到这一点,因为所有孩子都是动态创建的,我无法在女巫单元中指定孩子将被放置。

【问题讨论】:

  • 如果您在 google 中阅读了该内容,那么您应该已经发布了链接。但是您没有在 google 中阅读它,因为这是不可能的:uniform 意味着统一。 OTOH,谷歌确实告诉你如何在网格中设置项目的行和列。

标签: c# wpf uniformgrid


【解决方案1】:

我认为您最好使用Grid 控件。尽管您说您无法指定将孩子放置在哪个单元格中,但我会尝试修复那个问题,而不是创建一个新控件。如果你能解决这个问题,那么这可能会对你有所帮助。

要在代码中填充特定行,可以使用Grid.SetRow 方法;要填充特定列,可以使用Grid.SetColumn 方法:

Grid.SetRow(rectangle, 1);
Grid.SetColumn(rectangle, 1);

同样,设置行跨度可以使用Grid.SetRowSpan方法,设置列跨度可以使用Grid.SetColumnSpan方法:

Grid.SetRowSpan(rectangle, 2);
Grid.SetColumnSpan(rectangle, 2);

请参阅 MSDN 上的 Grid.SetRow MethodGrid.SetRowSpan MethodGrid.SetColumn MethodGrid.SetColumnSpan Method 页面以获取有关此内容的完整示例。

【讨论】:

  • 问题是我无法控制生成的文档,我只需要制作一个样式并显示它们,统一的网格可以完美地按照我的意愿工作,除了第三个文档和我想要在整行上显示它(就像你可以使用列跨度一样)
  • 如果您发现一篇文章向您展示了如何将跨度属性添加到您的 UniformGrid,然后继续...重写内部ItemsPanel,这不是小事。
猜你喜欢
  • 2012-06-15
  • 1970-01-01
  • 2014-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-14
  • 2019-08-19
  • 1970-01-01
相关资源
最近更新 更多