WPF: Как растянуть элементы управления в StackPanel?
-
06-07-2019 - |
Вопрос
Ползунок и некоторые другие элементы управления не растягиваются, чтобы заполнить доступное пространство при размещении в StackPanel; вместо этого ширина всегда MinWidth (или около 10 пикселей, если MinWidth не установлен). Как мне растянуть его (эквивалент Anchor.Left | Anchor.Right в WinForms)? Пример: р>
<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>
Решение
Вместо этого вы хотите DockPanel:
<DockPanel DockPanel.Dock="Bottom" LastChildFill="True">
<TextBlock DockPanel.Dock="Right" ... />
<Slider ... />
</DockPanel>
DockPanel предоставляет вам " Якорь " функциональность, которую вы хотите. StackPanel просто складывает вещи рядом друг с другом.
В вашем блоке кода я заметил, что ваша StackPanel уже закреплена внутри док-панели, поэтому я включил тот же атрибут закрепления в пример кода выше.
Не связан с StackOverflow