Wpf 达到子控件的特定高度时显示网格行并调整其大小

Wpf 达到子控件的特定高度时显示网格行并调整其大小,wpf,layout,grid,nested,scrollviewer,Wpf,Layout,Grid,Nested,Scrollviewer,我似乎无法正确使用网格。我需要一个有两行的布局,第一行有一个基于子网格高度的动态高度。第二行包含两个按钮,这一行的恒定高度为30像素。当子网格的内容尚未达到842像素的高度时,窗口应压缩以适合内容。否则,它将根据子栅格的高度展开 如果子网格的内容达到842像素,我只想为第一个网格行显示一个滚动条 我已经和MinHeight和MaxHeight玩过了,但是到目前为止没有任何效果。现在,滚动条显示得太晚,并且当子网格中没有内容时,窗口不会压缩 <Grid> <Grid.R

我似乎无法正确使用网格。我需要一个有两行的布局,第一行有一个基于子网格高度的动态高度。第二行包含两个按钮,这一行的恒定高度为30像素。当子网格的内容尚未达到842像素的高度时,窗口应压缩以适合内容。否则,它将根据子栅格的高度展开

如果子网格的内容达到842像素,我只想为第一个网格行显示一个滚动条

我已经和MinHeight和MaxHeight玩过了,但是到目前为止没有任何效果。现在,滚动条显示得太晚,并且当子网格中没有内容时,窗口不会压缩

 <Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition MaxHeight="35px" Height="35*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <ScrollViewer Grid.Row="0" Grid.Column="0" VerticalScrollBarVisibility="Auto" MinHeight="842px" Margin="0,0,0,13" Grid.RowSpan="2">
        <Grid>
        <Grid.ColumnDefinitions>               
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>                
        </Grid.RowDefinitions>

        //Many controls here...

        </Grid>
</ScrollViewer>
<Button Grid.Column="0" Grid.Row="1"></Button>
<Button Grid.Column="0" Grid.Row="1"></Button>
</Grid>  

//这里有很多控件。。。
编辑:添加一张图片进行澄清

像这样吗

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApplication1"
        Title="MainWindow" SizeToContent="WidthAndHeight">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="35" />
        </Grid.RowDefinitions>
        <ScrollViewer Background="Yellow" Grid.Row="0"  VerticalScrollBarVisibility="Auto" MaxHeight="842" Margin="0,0,0,13">
            <Grid>
                <Rectangle Fill="Red" Width="100" Height="300" HorizontalAlignment="Center" VerticalAlignment="Center"></Rectangle>
            </Grid>
        </ScrollViewer>
        <Button  Grid.Row="1">But</Button>
    </Grid>

</Window>

但是

如果这样做,我看不到子网格的内容。窗口压缩得很好,但压缩到只能看到带按钮的行。子网格?你是说那个长方形的。如果删除矩形,窗口将缩小到按钮的大小。如果此值太小,请在ScrollViewer中添加一个最小高度。好的,罪魁祸首是窗口的最大高度。我昨天没有注意到,但它被设置为842px,当我这样做时,我不记得XD。不知何故,这导致子网格的内容消失。当我删除最大高度时,它起作用了