WPF: Как растянуть элементы управления в StackPanel? - PullRequest
22 голосов
/ 07 мая 2009

Ползунок и некоторые другие элементы управления не растягиваются, чтобы заполнить доступное пространство при помещении в 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>

1 Ответ

39 голосов
/ 07 мая 2009

Вы хотите вместо DockPanel:

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

DockPanel предоставляет вам необходимую функциональность «Якорь». StackPanel просто укладывает вещи рядом друг с другом.

В вашем блоке кода я заметил, что ваша StackPanel уже закреплена в док-панели, поэтому я включил тот же атрибут закрепления в мой пример кода выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...