Question

Quelqu'un peut-il me aider à comprendre l'alignement d'étirement WPF. Je lance souvent dans des questions où je veux un contrôle pour remplir une zone, mais je ne comprends jamais à quel niveau je devrais mettre la VerticalAlignment = « Stretch ». Surtout quand UserControls sont impliqués.

Je résous toujours le problème en essayant différentes choses ou de mettre bout à tous les niveaux, mais je voudrais comprendre comment le faire correctement.

permet de prendre l'exemple que je suis maintenant:

  • I ai une grille d'une cellule de taille fixe (qui peut être redimensionnée avec un GridSplitter)
  • Je Dans cette cellule un UserControl contenant un StackPanel avec un TabControl
  • Dans le TabControl je TabItems contenant un autre UserControl avec un ListView

Ou dans une sorte de pseudo XAML

<ns:MyUserControl1 Grid.Row="0" Grid.Column="0">
    <!-- this is in MyUserControl1 -->
    <StackPanel>
        <TabControl>
            <TabItem>
               <ns:MyUserControl2>
                    <!-- This is in MyUserControl2 -->
                    <ListView/>
               </ns:MyUserControl2>
            </TabItem>
        </TabControl>
    </StackPanel>
</ns:MyUserControl>

Maintenant, je veux que le ListView pour remplir l'ensemble de la cellule de la grille (à l'exclusion du TabControl et des marges bien sûr).

Était-ce utile?

La solution

Votre ListView remplira votre MyUserControl2 - si vous voulez que cela correspond dans l'ensemble Tab, vous devez vous assurer de supprimer les contraintes de hauteur et la largeur à l'intérieur du fichier XAML du UserControl (ceux-ci par défaut à 300 chacun)

EDIT: Toutes mes excuses - je sautées la partie importante de votre XAML ... Le conteneur MyUserControl1 est un StackPanel ... cela empiler les contrôles enfants et redimensionner pour les adapter; Si vous le remplacer par un DockPanel (ou une grille), les contrôles enfants rempliront l'espace disponible et vous donner le résultat que vous êtes après ...

Jetez un oeil à cette l'article msdn ... Espoir cela aide:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top