【发布时间】:2014-08-29 04:47:39
【问题描述】:
我想创建一些控件对象(具体来说是Windows.UI.Xaml.Shapes.Rectangle)并以编程方式将其添加到在设计器中创建的Grid 控件中。我搜索了很多,但没有找到我需要的东西 - 许多答案都提到了 SetRow 和 SetColumn 方法。问题在于,显然,这些函数在新 XAML 中不存在(edit: Grid 我说的是在命名空间 Windows.UI.Xaml.Controls 中,而不是在 System.Windows.Controls 中)。我尝试将控件作为子项添加到网格:
grid.Children.Add(Rectangle);
控件添加在Grid的第一行/第一列单元格的中心,这很合乎逻辑,但是如何将下一个Rectangle添加到第一行即第二列?
这是一些实际的代码:
public void Draw(ref Grid grid)
{
Color rectColor = new Color()
{
R = 90,
G = 90,
B = 90,
A = 255
};
Brush rectBrush = new SolidColorBrush()
{
Color = rectColor
};
Square = new Rectangle()
{
Fill = rectBrush,
Height = 40,
Width = 40
};
grid.Children.Add(Square);
}
上述方法当然是更大程序的一部分,但是当我最终设法将一个控件放入由行和单元格编号描述的一个单元格中时,我想其余部分的制作起来会很简单(我需要 15x15 板)。
最后一件事 - 正如我所注意到的,所有这些 Grids 和其他布局控件似乎都不能用作表格,所以我的方法可能完全错误。当控件直接添加到设计器中时,它会自动适应正确的行和列。那么,我应该以某种方式只在Grid 中安排子控件吗?
对不起,如果这个问题很琐碎,我只是不知道该怎么做,我正在尝试两天,所以我将非常感谢任何建议。
【问题讨论】:
-
你试过grid.SetRow和grid.SetColumn吗?
-
是的,我在帖子中提到过,只是没有这样的方法。我会更新一点,因为不同的是命名空间,我之前忘记写了。