Question

Un curseur et d'autres contrôles ne s'étirent pas pour remplir l'espace disponible lorsqu'ils sont placés dans un StackPanel; à la place, la largeur est toujours MinWidth (ou environ 10 pixels si MinWidth n'est pas défini). Comment puis-je l'étirer (l'équivalent d'Anchor.Left | Anchor.Right dans WinForms)? Exemple:

<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>
Était-ce utile?

La solution

Vous souhaitez plutôt que DockPanel:

<DockPanel DockPanel.Dock="Bottom" LastChildFill="True">
    <TextBlock DockPanel.Dock="Right" ... />
    <Slider ... />
</DockPanel>

DockPanel vous récupère le "Anchor" fonctionnalité que vous voulez. StackPanel empile les objets les uns à côté des autres.

J'ai remarqué dans votre bloc de code que votre StackPanel est déjà ancré dans un panneau de dock, j'ai donc inclus le même attribut d'ancrage dans mon exemple de code ci-dessus.

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