如何添加控件.画布中的网格

本文关键字:布中 网格 控件 何添加 添加 | 更新日期: 2023-09-27 18:11:56

我想在画布中添加一个网格,并将其放入矩形中。

这里是我的代码

        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);

谢谢

如何添加控件.画布中的网格

通过在两者上设置new GridLength(1.0, GridUnitType.Star)来指定Grid的列/行应该相同宽/高。所以如果你有5行,那么每一行的高度应该是网格的高度除以5。

在你的代码中的问题是,网格没有高度或宽度,因为画布只是一个绘图板,没有大小的内容。

要解决这个问题,你要么必须使用

设置网格的大小
gridForModules.Width = 300;
gridForModules.Height = 200;

或者你必须在Column/RowDefinitions

中设置它
col.Width = new GridLength(30);
row.Height = new GridLength(30);

之后,你应该看到你的网格和你的矩形(如果你看得有点远)。