C#Metro应用程序-向网格中的特定行和列添加控件

C#Metro应用程序-向网格中的特定行和列添加控件,c#,xaml,grid,controls,C#,Xaml,Grid,Controls,我想创建一些控件对象(Windows.UI.Xaml.Shapes.Rectangle,具体来说)并以编程方式将其添加到设计器中创建的Grid控件中。我搜索了很多,但没有找到我需要的-很多答案都是关于SetRow和SetColumn方法的。问题是,很明显,这些函数在新的XAML中并不存在(edit:Grid我说的是在名称空间Windows.UI.XAML.Controls,而不是System.Windows.Controls)。。我已尝试将控件作为子控件添加到网格: grid.Children.

我想创建一些控件对象(
Windows.UI.Xaml.Shapes.Rectangle
,具体来说)并以编程方式将其添加到设计器中创建的
Grid
控件中。我搜索了很多,但没有找到我需要的-很多答案都是关于
SetRow
SetColumn
方法的。问题是,很明显,这些函数在新的XAML中并不存在(edit:
Grid
我说的是在名称空间
Windows.UI.XAML.Controls
,而不是
System.Windows.Controls
)。。我已尝试将控件作为子控件添加到网格:

grid.Children.Add(矩形)

控件被添加到
网格中第一行/第一列单元格的中心,这很符合逻辑,但是如何将下一个
矩形添加到第一行,即第二列

下面是一些实际代码:

public void Draw(参考网格)
{
颜色rectColor=新颜色()
{
R=90,
G=90,
B=90,
A=255
};
Brush rectBrush=新的SolidColorBrush()
{
颜色=矩形颜色
};
正方形=新矩形()
{
填充=矩形刷,
高度=40,
宽度=40
};
grid.Children.Add(正方形);
}
上述方法当然是更大程序的一部分,但当我最终设法将一个控件放入一个按行和单元格编号描述的单元格中时,我想剩下的控件制作起来会很简单(我需要15x15板)

最后一件事——正如我所注意到的,所有这些
网格
和其他布局控件似乎不像表那样工作,所以我的方法可能是完全错误的。当直接在设计器中添加控件时,它只会自动适应右边的行和列。那么,我是否应该只在
网格中安排子控件


很抱歉,如果这个问题很琐碎,我只是不知道如何做,我正在努力两天,所以我非常感谢您的建议。

您必须使用grid.SetColumn(UIElement,int)和grid.SetRow(UIElement,int)

您必须使用两种静态方法来完成此操作<代码>设置行
设置列
。e、 g

System.UI.Xaml.Controls.Grid.SetRow(您的行数,您的控件)

根据这一点,他们应该在那里:


您尝试过grid.SetRow和grid.SetColumn吗?是的,我在帖子中提到过,只是没有这样的方法。我会稍微更新一下,因为不同之处在于名称空间,我以前忘了写这个。我认为在新的C#中没有这样的方法,我写过这个(区别在于名称空间,
Grid
您所说的是在名称空间
System.Windows.Controls
,我所问的是在
Windows.UI.Xaml.Controls
)中。拥有它们真是太好了,但不幸的是它并没有那么简单:(你是对的。你正在尝试使用两个不同的框架,没有共同点。你必须实现自己的矩形UIElement才能使用网格方法。好的,我要读一读这篇文章。这看起来很奇怪,我们可以从设计器中为给定的行和列添加控件,但是从代码中没有简单的方法,对吗考虑到XAML控件几乎可以从C#编辑。感谢您的回复。它们是可以编辑的,但它只适用于Windows桌面,对于Windows应用商店,它似乎完全不同-
Grid
不等于
Grid
,我很喜欢它。