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>
È stato utile?

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
scroll top