[WPF] 实现网格底图

最终效果,网格分成10行10列;
在这里插入图片描述

XAML中定义;

<Grid HorizontalAlignment="Left" Height="450" Margin="450,10,0,0" VerticalAlignment="Top" Width="800"  x:Name="bggrid" Background="#FFC0E5E5">
            <Grid.RowDefinitions>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
            </Grid.ColumnDefinitions>
        </Grid>

//创建网格,画线

public static void InsertFrameForGrid(Grid grid)
        {
            var rowcon = grid.RowDefinitions.Count;
            var clcon = grid.ColumnDefinitions.Count;
            Console.WriteLine("行数量:"+ rowcon+",列数量:"+ clcon);
            for (var i = 0; i < rowcon + 1; i++)//行循环添加border
            {
                var border = new Border
                {
                    BorderBrush = new SolidColorBrush(Colors.SlateGray),
                    BorderThickness = i == rowcon ? new Thickness(0, 0, 0, 1) : new Thickness(0, 1, 0, 0),                   

                };

                Grid.SetRow(border, i);
                Grid.SetColumnSpan(border, clcon);
                grid.Children.Add(border);
            }

            for (var j = 0; j < clcon + 1; j++)//列循环添加border
            {
                var border = new Border
                {
                    BorderBrush = new SolidColorBrush(Colors.SlateGray),
                    BorderThickness = j == clcon ? new Thickness(0, 0, 1, 0) : new Thickness(1, 0, 0, 0)
                };
                Grid.SetColumn(border, j);
                Grid.SetRowSpan(border, rowcon);
                grid.Children.Add(border);
            }
        }

另外一种方法,请参考以下连接;
连接地址:https://www.shuzhiduo.com/A/gAJGMGW0dZ/ 传送门
此控件需要包含在画布内;
例如:

		<Rectangle >
            <Rectangle.Fill>
            ........
            .......
            .......
            </Rectangle.Fill>
        </Rectangle>

【好文共赏析!】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值