我似乎无法使我的网格正确。我需要一个有两行的布局,第一行的动态高度基于子网格的高度。第二行包含几个按钮,此行具有30像素的恒定高度。当子网格的内容尚未达到842像素的高度时,窗口应该压缩以适合内容。否则,它会根据子Grid的高度进行扩展。
如果子网格的内容达到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>
编辑:添加了一张图片以供澄清。
答案 0 :(得分:1)
喜欢这个吗?
<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>