У меня есть сетка, где я хочу две строки, так что нижняя строка имеет высоту 52 пикселя, а высота верхней строки занимает оставшееся пространство. Например, если высота сетки составляет 100 пикселей, верхняя строка - 48 пикселей, а нижняя строка - 52 пикселя.
Высота сетки гарантированно составляет не менее 53 пикселей. В настоящее время мой код XAML выглядит так:
<Grid Height="{TemplateBinding Height}">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="52"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"></ColumnDefinition>
<ColumnDefinition Width="0.5*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0">Upper</TextBlock>
<TextBlock Grid.Row="0" Grid.Column="1">Upper</TextBlock>
<StackPanel Grid.Row="1" Grid.Column="0" Background="#1CFFFFFF">
<TextBlock>Lower</TextBlock>
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="1" Background="#1CFFFFFF">
<TextBlock>Lower</TextBlock>
</StackPanel>
</Grid>
Проблема в том, что для отображения текстовых блоков в верхнем ряду требуется только один дополнительный элемент, а панели StackPanel в нижнем ряду растягиваются, чтобы заполнить высоту сетки. Это часть пользовательского элемента управления, поэтому высота сетки устанавливается как {TemplateBinding Height}
.
И мне нужно, чтобы содержимое нижнего ряда было StackPanels.
Попытки с моей стороны, которые не сработали:
- Установка высоты нижних стековых панелей равной 52.
- Попытка различных значений для параметра
Orientation
в StackPanel [хотя, не знаю, почему я это сделал].
- Установка
MaxHeight
, MinHeight
как 52 на 2 RowDefinition
.
Любая помощь приветствуется.