2010-08-16 7 views
0

J'ai une fenêtre avec cette disposition de base:WPF Contenu Grille & Effondré

<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> 

Quelle im essayant d'obtenir est une fenêtre qui est compacte lorsque les deux TextBlock est au fond sont Visibilité = « Effondrement », et se développe jusqu'à une hauteur maximale définie quand ils ne sont pas.

Cela fonctionne très bien pour le <Grid> mais il semble que peu importe comment je réarranger ma mise en page, je ne peux pas obtenir la fenêtre pour essayer d'utiliser l'espace minimum, il se trouve toujours à la taille max avec beaucoup d'espaces blancs inutiles.

Qu'est-ce qui se passe:

 
+-----------------------------------+ 
| Header       | 
+-----------------------------------+ 
+-----------------------------------+ 
+-----------------------------------+ 
|         | 
| Wasted Space I want to   | 
| "collapse"      | 
|         | 
+-----------------------------------+ 
| Footer       | 
+-----------------------------------+ 

Ce que je veux:

 
+-----------------------------------+ 
| Header       | 
+-----------------------------------+ 
+-----------------------------------+ 
+-----------------------------------+ 
+-----------------------------------+ 
| Footer       | 
+-----------------------------------+ 

Or Effectively: 

+-----------------------------------+ 
| Header       | 
+-----------------------------------+ 
| Footer       | 
+-----------------------------------+ 

+0

Voulez-vous redimensionner la fenêtre? ou juste la disposition à compacter à l'intérieur de la fenêtre? –

+0

@Metro Schtroumpf Je ne veux pas que l'utilisateur redimensionne la fenêtre, je veux pouvoir "réduire" le contenu de la fenêtre et faire en sorte que son espace visuel soit retiré de la boîte de dialogue (raccourcissant ainsi sa hauteur totale). – Aren

+0

À droite, donc vous voulez redimensionner la fenêtre. Vérifiez la propriété SizeToContent sur la fenêtre. –

Répondre

2

Je pense que ce que vous vous cherchez est SizeToContent = "Taille" sur la fenêtre.

+0

Merci beaucoup :) C'est ce dont j'avais besoin, petite propriété idiote perdue dans une mer d'intellisense. – Aren