У меня есть окно с этой основной схемой:WPF сетки и свернутый Content
<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>
Что им пытается достичь, это окно, компактно, когда два TextBlock в нижнем являются Visibility = «Свернутым», и расширяется до максимальной высоты, установленной, когда они нет.
Это работает вполне нормально для <Grid>
, но кажется, что независимо от того, как я переустанавливаю свой макет, я не могу заставить окно пытаться использовать минимальное пространство, он всегда сидит в макс-размере с большим количеством бесполезных пробелов.
Что происходит:
+-----------------------------------+ | Header | +-----------------------------------+ +-----------------------------------+ +-----------------------------------+ | | | Wasted Space I want to | | "collapse" | | | +-----------------------------------+ | Footer | +-----------------------------------+
Что я хочу:
+-----------------------------------+ | Header | +-----------------------------------+ +-----------------------------------+ +-----------------------------------+ +-----------------------------------+ | Footer | +-----------------------------------+ Or Effectively: +-----------------------------------+ | Header | +-----------------------------------+ | Footer | +-----------------------------------+
Вы хотите изменить размер окна? или просто макет, который нужно уплотнять внутри окна? –
@Metro Smurf Я не хочу, чтобы пользователь менял размер окна, я хочу иметь возможность «Свернуть» некоторый контент в окне и удалить его из диалогового окна (таким образом сокращая его общую высоту). – Aren
Правильно, поэтому вы хотите изменить размер окна. Проверьте свойство SizeToContent в окне. –