WPF布局控件之Grid布局

前言

博主文章仅用于学习、研究和交流目的,不足和错误之处在所难免,希望大家能够批评指出,博主核实后马上更改。

概述:本文简要介绍了WPF中布局常用控件及布局相关的属性。先介绍Grid布局控件用法.

总揽概况

名称说明
Grid网格,根据自定义行和列来设置控件的布局
StackPanel栈式面板,包含的元素在竖直或水平方向排成一条直线
WrapPanel自动折行面板,包含的元素在排满一行后,自动换行
DockPanel泊靠式面板,内部的元素可以选择泊靠方向
UniformGrid网格,UniformGrid就是Grid的简化版,每个单元格的大小相同。
Canvas画布,内部元素根据像素为单位绝对坐标进行定位
Border装饰的控件,此控件用于绘制边框及背景,在Border中只能有一个子控件

一、Grid

常用属性说明
ShowGridLines可以设置行业的边距线的显示(True/False) 默认不False ,不显示
Grid. RowDefinitions可以创建任意行, 进行固定高度与百分比高度设置
Grid. ColumnDefinitions可以创建任意列, 进行固定宽度与百分宽度设置
Background背景色
Grid.Column内部元素放在第几列, 默认从零开始数,不设置,默认第零列
Grid.Row内部元素放在第几行,默认从零开始数,不设置,默认第零列
Grid.ColumnSpan内部元素跨第几列
Grid.ColumnRow内部元素跨第几行

1.1:ShowGridLines属性演示


代码如下:

<Grid ShowGridLines="True">
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
    </Grid>

效果图如下:
在这里插入图片描述


1.2: Grid.RowDefinitions/Grid.ColumnDefinitions属性演示


** 代码如下(两行):**

<Grid ShowGridLines="True">
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
    </Grid>

效果图如下:

在这里插入图片描述


代码如下(两列)

   <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
    </Grid>

效果图如下:
在这里插入图片描述


** 代码如下(两行两列)**

    <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
    </Grid>

效果图如下:

在这里插入图片描述


** 代码如下(第一列宽度是第二列2倍) ) 行同理**

   <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="2*"></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>

    </Grid>

** 效果如下图**

在这里插入图片描述


代码如下(第一列宽度固定值) 行同理

 <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <!--第一列固定宽度-->
            <ColumnDefinition Width="50"></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>

    </Grid>

效果图如下:

在这里插入图片描述


代码如下(第一列宽度Auto) 行列的大小会随着控件的大小变化而变化;

      <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <!--行列的大小会随着控件的大小变化而变化;-->
            <ColumnDefinition Width="auto"></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <Button Width="100">张三</Button>
    </Grid>

效果图如下:Button子控件宽度设置100像素

在这里插入图片描述


效果图如下:Button子控件宽度设置300像素

在这里插入图片描述


1.3:Grid.Column/Grid.Row属性演示


代码如下(默认不设置)

    <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <!--行列的大小会随着控件的大小变化而变化;-->
            <ColumnDefinition Width="auto"></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <!--不设置值,默认Grid.Column/Grid.Row 都是0-->
        <Button Width="300">张三</Button>
    </Grid>

效果图如下

在这里插入图片描述


** 代码如下(第二行第一列)**

    <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <!--行列的大小会随着控件的大小变化而变化;-->
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <!--设置值,第二行第一列-->
        <Button Grid.Row="1" Width="300">张三</Button>
    </Grid>

效果图如下

在这里插入图片描述


1.4:Grid.ColumnSpan/Grid.ColumnRow 属性演示


** 代码如下(跨两行)**

 <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <!--行列的大小会随着控件的大小变化而变化;-->
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <!--设置值,跨两行-->
        <Button Grid.RowSpan="2" Width="300">张三</Button>
    </Grid>

效果图如下

在这里插入图片描述


代码如下(跨两列)

    <Grid ShowGridLines="True">
        <Grid.ColumnDefinitions>
            <!--行列的大小会随着控件的大小变化而变化;-->
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <!--设置值,跨两行-->
        <Button Grid.ColumnSpan="2" Width="300">张三</Button>
    </Grid>

效果图如下

在这里插入图片描述


总结

Grid控件常用于界面表格网格的布局,Grid和其他各个Panel比较起来,功能最多也最为复杂。同时此面板可承载任意元素,包括控件,图形,甚至文字。各种元素依据屏幕坐标确定位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值