WPF: Come estendere i controlli in StackPanel?
-
06-07-2019 - |
Domanda
Uno slider e alcuni altri controlli non si allungano per riempire lo spazio disponibile quando vengono inseriti in StackPanel; invece la larghezza è sempre MinWidth (o circa 10 pixel se MinWidth non è impostato). Come faccio a allungarlo (l'equivalente di Anchor.Left | Anchor.Right in WinForms)? Esempio:
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal">
<Slider Value="14" SmallChange="0.5" Maximum="100" Minimum="4"
x:Name="FontSize" MinWidth="30" LargeChange="2"
TickFrequency="10" TickPlacement="TopLeft"
HorizontalAlignment="Stretch"/>
<TextBlock Margin="8" Text="{Binding ElementName=FontSize, Path=Value}"
VerticalAlignment="Center"/>
</StackPanel>
Soluzione
Desideri invece DockPanel:
<DockPanel DockPanel.Dock="Bottom" LastChildFill="True">
<TextBlock DockPanel.Dock="Right" ... />
<Slider ... />
</DockPanel>
DockPanel ti offre il "Ancoraggio" funzionalità che desideri. StackPanel impila semplicemente le cose una accanto all'altra.
Ho notato dal tuo blocco di codice che StackPanel è già ancorato all'interno di un pannello dock, quindi ho incluso lo stesso attributo docking nel mio esempio di codice sopra.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow