0
点赞
收藏
分享

微信扫一扫

[WPF] 实现网格底图

骨灰级搬砖工 2022-02-18 阅读 39
wpfmicrosoft

最终效果,网格分成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 条评论