我想创建一些控件对象(Windows.UI.Xaml.Shapes.Rectangle
为特定的)并以编程方式将其添加到设计器中创建的Grid
控件中。我搜索了很多,但没有找到我需要的东西 - 很多答案都说SetRow
和SetColumn
方法。问题是,显然,新XAML中不存在这些功能(编辑: Grid
我所说的是名称空间Windows.UI.Xaml.Controls
,而不是System.Windows.Controls
1}})..我尝试将控件作为子项添加到网格中:
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
中的儿童控件吗?
很抱歉,如果这个问题很简单,我只是不知道,怎么做,我想要两天,所以我会非常感谢任何建议。
答案 0 :(得分:2)
您必须使用两个静态方法才能执行此操作。 SetRow
和SetColumn
。例如
System.UI.Xaml.Controls.Grid.SetRow(your row num, your control)
根据这个,他们应该在那里:
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.grid.setrow.aspx
答案 1 :(得分:0)
你必须使用grid.SetColumn(UIElement,int)和Grid.SetRow(UIElement,int)