请教用WPF怎么在代码中定义grid的行的高的比例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教用WPF怎么在代码中定义grid的行的高的比例相关的知识,希望对你有一定的参考价值。

参考技术A XML/html code
?
1
2
3
4
5
6
<Grid ShowGridLines="True" Height="100" Background="#ff0" >
<Grid.RowDefinitions>
<RowDefinition Height="0.7*"/>
<RowDefinition Height="0.3*"/>
</Grid.RowDefinitions>
</Grid>本回答被提问者采纳

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>

 

以上是关于请教用WPF怎么在代码中定义grid的行的高的比例的主要内容,如果未能解决你的问题,请参考以下文章

wpf 如何动态的设置Grid宽和高.

wpf Grid布局

请教高手,怎么用awk来读取一个文本文件的指定行的内容

不显示删除回复显示所有回复显示星级回复显示得分回复 WPF中C#代码生成窗体并添加Grid问题

wpf 如何修改 RowDefinition的高?

wpf datagrid 样式怎么设置默认选中行的颜色