我想在Canvas中添加一个Grid并放入一个Rectangle。
这是我的代码
Grid gridForModules = new Grid();
Canvas.SetLeft(gridForModules, 600);
Canvas.SetTop(gridForModules, 80);
AddRowsOfGrid(gridForModules, 5);
AddColumnsOfGrid(gridForModules, 8);
gridForModules.ShowGridLines = true;
m_grid.RegisterName("ModulesGRID", gridForModules);
m_canvas.Children.Add(gridForModules);
Rectangle rect = new Rectangle();
Grid.SetColumn(rect, 2);
Grid.SetRow(rect, 2);
Grid.SetRowSpan(rect, 2);
Grid.SetColumnSpan(rect, 2);
rect.Fill = new SolidColorBrush(Colors.Coral);
rect.Name = "ModuloEsempio";
gridForModules.Children.Add(rect);
m_grid.RegisterName(rect.Name, rect);
由于
答案 0 :(得分:1)
通过在两者上设置new GridLength(1.0, GridUnitType.Star)
,指定网格的列/行应该等宽/高。因此,如果你有5行,那么每行的高度应该是Grid的高度除以5。
代码中的问题是Grid没有高度或宽度,因为Canvas只是一个不会调整其内容大小的绘图板。
要解决您的问题,您必须使用
在网格上设置大小gridForModules.Width = 300;
gridForModules.Height = 200;
或者你必须在Column / RowDefinitions
中设置它col.Width = new GridLength(30);
row.Height = new GridLength(30);
之后你应该看到你的网格和你的矩形(如果你看起来有点偏右)。