У меня есть окно с этим основным макетом:
<Window
MinHeight="72" MaxHeight="400" Height="Auto"
MinWidth="460" MaxWidth="460">
<DockPanel>
<!-- Footer -->
<StackPanel DockPanel.Dock="Bottom">
...
</StackPanel>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="Auto" MinHeight="0"/>
<RowDefinition Height="Auto" MinHeight="0" MaxHeight="40" />
</Grid.RowDefinitions>
<StackPanel>
<!-- Header -->
</StackPanel>
<TextBlock Grid.Row="1" Visibility="{My Fancy Binding To collapse this}" ... />
<TextBlock Grid.Row="2" Visibility="{My Fancy Binding To collapse this}" ... />
</Grid>
</DockPanel>
</Window>
То, чего я пытаюсь добиться, - это компактное окно, когда два текстовых блока внизу имеют видимость = "Свернутый", и расширяется до максимальной высоты, установленной, когда они не.
Это нормально работает для <Grid>
, но кажется, что независимо от того, как я переставлю свою компоновку, я не могу заставить окно пытаться использовать минимальное пространство, оно всегда находится в максимальном размере с много бесполезных пробелов.
Что происходит:
+-----------------------------------+
| Header |
+-----------------------------------+
+-----------------------------------+
+-----------------------------------+
| |
| Wasted Space I want to |
| "collapse" |
| |
+-----------------------------------+
| Footer |
+-----------------------------------+
Что я хочу:
+-----------------------------------+
| Header |
+-----------------------------------+
+-----------------------------------+
+-----------------------------------+
+-----------------------------------+
| Footer |
+-----------------------------------+
Or Effectively:
+-----------------------------------+
| Header |
+-----------------------------------+
| Footer |
+-----------------------------------+