Grid的意思是网格,使用网格布局时候需要先确定行数列数
Grid.ColumnDefinitions 表示Grid的列
指定列时候需要指定列的宽度(width)
Grid.RowDefinitions 表示Grid的行
指定行的时候需要指定行的高度(Height)
指定行高度或者列宽度时候可以使用三种方式
- 使用绝对值方式,如 高度100或者宽度200
- 使用auto自动指定,每个控件都有一个默认的高度或者宽度
- 使用*号按比例设置,如 一个列宽度为 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>