我有两个元素,我希望它们能够最有效地共享可用空间。采取以下xaml:
<Window x:Class="Gridtest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" SizeToContent="WidthAndHeight">
<Grid Height="320" Width="110" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="0" VerticalScrollBarVisibility="Auto" >
<Border Margin="5" Background="Red" Height="200" />
</ScrollViewer>
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
<Border Margin="5" Background="Blue" Height="100" />
</ScrollViewer>
</Grid>
</Window>
这是我追求的红色和蓝色的各种高度组合的结果,但如果可以使用库存面板,我无法解决。使用auto作为行高意味着ScrollViewers不会尊重实际可用空间。最后一个例子只是在蓝色的一半被修剪。
有没有办法让我想要的只是使用库存面板,或者我将不得不自己编写?
答案 0 :(得分:-1)
这将为第一行提供所有可用空间(在第二行获得所需的最小空间之后):
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
这将分配两行之间的空间:
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
这将以1:2的比例分配第一行和第三行之间的可用空间(在第二行获得所需的最小空间之后):
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
等。等