2009-05-09 4 views
0

J'ai une fenêtre WPF où je veux qu'une section en haut de la fenêtre soit juste la hauteur de tous les éléments qu'elle contient. La section inférieure de la fenêtre devrait être la zone de hauteur réglable. Si la fenêtre est plus grande, alors la section inférieure devrait être la section qui croît et non la section supérieure.WPF Le formatage de la fenêtre ne fonctionne pas comme prévu

À l'intérieur de la partie inférieure de la fenêtre, je veux que deux sections soient contenues. La section supérieure devrait être la section de hauteur réglable et la section inférieure devrait être juste la hauteur nécessaire pour afficher tous les éléments qui y sont contenus.

Si vous regardez le code xaml ci-dessous, vous verrez que j'ai un total de trois grilles définies. La grille externe a deux définitions de ligne où la ligne supérieure est définie sur Auto, de sorte que la hauteur est juste suffisante pour contenir tous les éléments qui y sont contenus. La deuxième rangée devrait être réglable pour lui permettre de remplir le reste de la taille de la fenêtre.

A l'intérieur de la deuxième rangée de la grille extérieure est une autre grille qui devrait permettre à la première rangée d'être flexible pour la hauteur et la deuxième rangée juste assez grand pour tous les éléments qui y sont contenus.

Le problème que j'ai est que toute la fenêtre n'est pas remplie. La grille inférieure est seulement à mi-chemin sur la fenêtre extérieure. Pourquoi la fenêtre entière n'est-elle pas remplie par la grille du bas? Comment puis-je changer la définition pour permettre cela?

<Window x:Class="WPFSample.Window1" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="Window1" Height="300" Width="300"> 
<Grid x:Name="LayoutRoot"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition /> 
     <RowDefinition Height="*" /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 
    <Grid x:Name="TopGrid" VerticalAlignment="Top" Width="Auto" Height="Auto" Grid.Row="0"> 
     <Button Height="23" HorizontalAlignment="Left" Margin="60,0,0,4" Name="button1" VerticalAlignment="Bottom" Width="75">Button</Button> 
    </Grid> 
    <Grid x:Name="BottomGrid" Width="Auto" Height="Auto" VerticalAlignment="Bottom" Grid.Row="1"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
      <RowDefinition /> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition /> 
     </Grid.RowDefinitions> 
     <Button Grid.Row="0" Height="23" Margin="60,0,61,4" Name="button2" VerticalAlignment="Bottom">Button</Button> 
     <Button Grid.Row="1" Height="23" Margin="60,0,61,4" Name="button3" VerticalAlignment="Bottom">Button</Button> 
    </Grid> 
</Grid> 

Répondre

0

Je figurés celui-ci dehors. J'ai défini plusieurs définitions de lignes en plus des deux que je pensais avoir. Une fois que j'ai supprimé les supplémentaires, la mise en forme a fonctionné comme prévu.

Questions connexes