动态扩展网格还可以扩展固定高度的行和列

时间:2015-06-15 05:44:03

标签: xaml layout grid

我在另一个Grid中有一个动态扩展的Grid,它被分成4行4列。

我的主要内容网格跨越4行和2列,并动态加载不同的视图,有时会扩展高度。我的问题是,其他行也会扩展,虽然它们有一个固定的高度,这使得布局看起来很奇怪。

我想保留所有的行'高度为36,但只是展开最低行,以便显示我网格的所有内容。

<Grid HorizontalAlignment="Stretch">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="45" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="70" />
        <ColumnDefinition Width="110" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="36" />
        <RowDefinition Height="36" />
        <RowDefinition Height="36" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <Button Grid.Row="0" Grid.Column="0"
            HorizontalAlignment="Stretch"
            VerticalAlignment="Stretch"
            FontSize="14"
            Content="X">
    </Button>

    <Grid x:Name="MainPaymentContentRoot"
              Grid.Row="0" 
              Grid.RowSpan="4"
              Grid.Column="1" 
              Grid.ColumnSpan="2"
              Margin="20,0,0,0"
              HorizontalAlignment="Stretch"
              VerticalAlignment="Stretch"
              ScrollViewer.VerticalScrollBarVisibility="Auto"
              ScrollViewer.VerticalScrollMode="Auto">
    </Grid>

    <TextBlock Text="MyField" Grid.Row="0" Grid.Column="3" Margin="10,0,0,0" VerticalAlignment="Center" />
    <Button Grid.Row="1" Grid.Column="3" Margin="10,0,0,0"
            HorizontalAlignment="Stretch"
            HorizontalContentAlignment="Right"
            Content="AnotherButton">
    </Button>

</Grid>

这是Win 8开发。

1 个答案:

答案 0 :(得分:0)

目前,您的RowDefinition设置为Auto。这意味着该行将计算内容大小,并相应地调整其高度。

您需要将其更改为Height="*"

<RowDefinition Height="*" />

这会强制RowDefinition扩展到父级的高度。换句话说,它将占用所有可用空间。