Question

Les libellés de l'exemple ci-dessous (WPF / XAML) défilent à l'écran, aucun retour à la ligne ne se produit. Supprimer l'orientation fonctionne, mais ne fournit pas les fonctionnalités nécessaires / look & amp; ressentir. Des idées sur la manière de faire en sorte que le WrapPanel soit ajusté à la taille actuelle du StackPanel ?

<Window Height="300" Width="600">
    <StackPanel Orientation="Horizontal">
        <WrapPanel>
            <Label Height="28" Name="label1" Width="120">First Name</Label>
            <Label Height="28" Name="label2" Width="120">John</Label>
            <Label Height="28" Name="label3" Width="120">Last Name</Label>
            <Label Height="28" Name="label4" Width="120">Smith</Label>
            <!-- ...more labels!... -->
        </WrapPanel>
        <!-- ...other controls/panels... -->
    </StackPanel>
</Window>
Était-ce utile?

La solution

Vous pouvez lier le MaxWidth du WrapPanel au StackPanel du ActualWidth .

Autres conseils

Ce que vous faites n'est pas possible à cause de l'algorithme utilisé par StackPanel lors de la mise en page horizontale. Il va essentiellement demander à chaque élément enfant quelle taille il souhaite avoir et quelle que soit l'espace demandé, il le laissera.

Vous devez soit:

  1. Définissez un Width ou un MaxWidth sur le WrapPanel .
  2. Utilisez un WrapPanel comme panneau externe à la place du StackPanel .
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top