这有点难以解释,但我会尽我所能。 我目前有一个有两列和几行的网格。 我只希望第二列中的控件有助于网格的高度。
因此,在下面的示例中,我希望列表框是两个文本块的高度,如果需要显示更多数据,则显示滚动条。我在如何做到这一点上画了一个空白。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ListBox Grid.RowSpan="2" Grid.Column="0" VerticalAlignment="Stretch" />
<TextBlock Grid.Row="0" Grid.Column="1" />
<TextBlock Grid.Row="1" Grid.Column="1" />
</Grid>
答案 0 :(得分:2)
如果你不介意讨厌的黑客:
<FrameworkElement Grid.RowSpan="2" Grid.Column="0" Name="Hax" />
<ListBox Grid.RowSpan="2" Grid.Column="0"
Height="{Binding ActualHeight, ElementName=Hax}"/>
答案 1 :(得分:1)
现在看起来像网格正在伸展以填补IT的父母。尝试将外部网格的高度设置为“自动”和“垂直对齐”为顶部:
<Grid Height="Auto" VerticalAlignment="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ListBox Grid.RowSpan="2" Grid.Column="0" VerticalAlignment="Stretch" />
<TextBlock Grid.Row="0" Grid.Column="1" />
<TextBlock Grid.Row="1" Grid.Column="1" />
</Grid>