wpf Grid布局

Grid的意思是网格,使用网格布局时候需要先确定行数列数

Grid.ColumnDefinitions 表示Grid的列
指定列时候需要指定列的宽度(width)
Grid.RowDefinitions 表示Grid的行
指定行的时候需要指定行的高度(Height)

指定行高度或者列宽度时候可以使用三种方式

  1. 使用绝对值方式,如 高度100或者宽度200
  2. 使用auto自动指定,每个控件都有一个默认的高度或者宽度
  3. 使用*号按比例设置,如 一个列宽度为 3* 一个列宽度为7* 则表示 第一个列占窗口的百分之三十宽度,第二个列占窗口的百分之七十宽度

指定完列和行后在 Grid.RowDefinitions 的同级目录下写控件,并为控件指定其在第几行的第几列

Grid.Column="0" 指定在第1列 列和行都是从0开始为下标
Grid.Row="0" 在第1行
Grid.ColumnSpan="2" 跨列 跨两个列如果要跨行使用Grid.RowSpan="2" 不管跨行还是跨列,默认值都是0

分割窗口使用 GridSplitter 标签,在使用GridSplitter之前需要明确要使用垂直还是水平的分割,如果使用垂直分割则

VerticalAlignment="Stretch" HorizontalAlignment="Center"

如果使用水平分割则

VerticalAlignment="Center" HorizontalAlignment="Stretch"

分割窗口一般占用单独的一行或者一列,在指定列的时候需要指定水平分割一般只需要设置GridSplitter标签的高度就可以了,垂直分割则只需要设置标签的宽度

<Grid Background="LightBlue">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="2"></RowDefinition>
        <RowDefinition Height="40"></RowDefinition>
    </Grid.RowDefinitions>

    <Grid Background="Aquamarine" Margin="5" Grid.Row="0" Grid.Column="0">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="7*"></ColumnDefinition>
            <ColumnDefinition Width="3*"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="3*"></RowDefinition>
            <RowDefinition Height="3*"></RowDefinition>
            <RowDefinition Height="3*"></RowDefinition>
        </Grid.RowDefinitions>
        <TextBox x:Name="txt1" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Margin="5"></TextBox>
        <TextBox x:Name="txt2" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Margin="5"></TextBox>
        <TextBox x:Name="txt3" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="1" Margin="5"></TextBox>
        <TextBox x:Name="txt4" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="1" Margin="5"></TextBox>
    </Grid>
    <Button x:Name="btn1" Grid.Column="0" Grid.Row="2" Margin="5">
        <Image Source="Properties/t.jpg" Width="23" Height="23"></Image>
    </Button>
    <GridSplitter Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" Height="2" HorizontalAlignment="Stretch" ShowsPreview="False"></GridSplitter>
</Grid>

猜你喜欢

转载自www.cnblogs.com/sunhouzi/p/12316243.html
今日推荐