Код, который вы опубликовали, в точности соответствует объявленному определению высоты строки родительской сетки: он занимает 90% доступной высоты.
*. 1 = 10% высоты
* .9 = 90% высоты
Часто бывает полезно удалить беспорядок из xaml и начать с чего-то простого, чтобы помочь с макетом. Вот пример с определениями столбцов / строк таблицы вашего кода, но с меньшим количеством беспорядка и некоторым цветом фона, чтобы показать весь ListBox.
- В первом ListBox есть несколько элементов, а во втором ListBox всего несколько элементов.
- Оба ListBox находятся в первом ряду и занимают 90% доступного пространства.
- 2-я строка содержит сетку, которая заполняет остальное пространство; Вы можете видеть, что он занимает 10% доступного пространства.
Обратите внимание, что первый ListBox не объявляет индекс столбца или строки; когда индекс не используется, предполагается, что он равен 0, то есть Grid.Row="0" Grid.Column=0
.
<Grid Background="Red">
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".24*"/>
<ColumnDefinition Width=".73*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height=".9*"/>
<RowDefinition Height=".1*"/>
</Grid.RowDefinitions>
<ListBox Background="LightGray"
ItemsSource="{x:Static Fonts.SystemFontFamilies}"/>
<ListBox Grid.Column="1" Grid.Row="0" Background="LightSlateGray">
<ListBoxItem>John</ListBoxItem>
<ListBoxItem>Jane</ListBoxItem>
<ListBoxItem>Fido</ListBoxItem>
</ListBox>
<Grid Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Background="Tomato" />
</Grid>