WrapPanel non si avvolge in StackPanel con orientamento orizzontale
-
06-07-2019 - |
Domanda
Le etichette nell'esempio seguente (WPF / XAML) sfilano appena dallo schermo, non si verificano avvolgimenti. La rimozione dell'orientamento funziona, ma non fornisce la funzionalità / aspetto & amp; sentire. Qualche idea su come fare in modo che WrapPanel
si adatti alle dimensioni correnti di 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>
Soluzione
Puoi associare il WrapPanel
MaxWidth
al StackPanel
ActualWidth
.
Altri suggerimenti
Quello che stai facendo non è possibile a causa dell'algoritmo che StackPanel
utilizza quando si esegue il layout orizzontale. Fondamentalmente chiederà a ciascun elemento figlio quanto grande vuole essere e per quanto spazio richiede per darlo.
O dovresti:
- Imposta un
Width
oMaxWidth
suWrapPanel
. - Usa un
WrapPanel
come pannello esterno al posto diStackPanel
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow