C# UniformGrid布局

C# UniformGrid布局,c#,wpf,uniformgrid,C#,Wpf,Uniformgrid,我知道统一网格不支持行跨度,但通过重写我在Google上读到的方法,它在某种程度上是可能的,但我可以用一个例子来说明如何做到这一点。我想要实现的是类似于以下内容的布局: ---------- | 1 | 2 | ---------- | 3 | ---------- 所以基本上我希望第三个孩子跨越两列。我可以使用网格,但遗憾的是,我不知道如何才能做到这一点,因为所有子对象都是动态创建的,我无法在witch单元格中指定子对象将被放置。我认为最好使用网格控件。虽然您说无

我知道统一网格不支持行跨度,但通过重写我在Google上读到的方法,它在某种程度上是可能的,但我可以用一个例子来说明如何做到这一点。我想要实现的是类似于以下内容的布局:

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

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

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

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

Grid.SetRow(rectangle, 1);
Grid.SetColumn(rectangle, 1);
Grid.SetRowSpan(rectangle, 2);
Grid.SetColumnSpan(rectangle, 2);
同样,要设置行跨度,可以使用
Grid.SetRowSpan
方法;要设置列跨度,可以使用
Grid.SetColumnSpan
方法:

Grid.SetRow(rectangle, 1);
Grid.SetColumn(rectangle, 1);
Grid.SetRowSpan(rectangle, 2);
Grid.SetColumnSpan(rectangle, 2);

请参阅MSDN上的、、和页面以获取完整的示例。

问题在于我无法控制生成的文档,我只需创建一个样式并显示它们,除了第三个文档之外,统一的网格可以完美地工作,我希望在整行显示它(就像您可以使用列span一样)如果您发现一篇文章向您展示了如何将span属性添加到
UniformGrid
,请继续。。。我还没有看到过,如果不重新编写内部的
ItemsPanel
,我也看不出它是如何工作的,这不是一件小事。如果你在谷歌上看到了,那么你应该已经发布了链接。但你没有在谷歌上读到它,因为这是不可能的:统一意味着统一。OTOH,google会告诉你如何在网格中设置项目的行和列。