Вот сетка 2x2, в которой первый столбец охватывает обе строки, но его содержимое с фиксированной высотой, по-видимому, диктует минимальную высоту для первой строки:
<UserControl x:Class="Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="300">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Fill="Green"
Width="50" Height="50" VerticalAlignment="Top" />
<TextBlock Grid.Row="0" Grid.Column="1" Margin="3" TextWrapping="Wrap">
Some text goes here.
</TextBlock>
<Button Grid.Row="1" Grid.Column="1" HorizontalAlignment="Right">OK</Button>
</Grid>
</UserControl>
В этом примереПервая строка всегда имеет высоту не менее 50, как видно из пространства, занимаемого TextBlock, хотя я бы хотел, чтобы он (и, как следствие, весь элемент управления) был короче, если текста для отображения мало.Я что-то упустил, или это ошибка макета WPF?
(Да, я знаю, что мог бы легко закодировать это с помощью вложенных сеток, но это упрощенная переработка более сложного случая.)