24

当放置在 StackPanel 中时,Slider 和其他一些控件不会拉伸以填充可用空间;相反,宽度始终为 MinWidth(如果未设置 MinWidth,则为大约 10 个像素)。如何让它伸展(相当于 WinForms 中的 Anchor.Left|Anchor.Right)?例子:

<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>
4

1 回答 1

43

你想要 DockPanel 代替:

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

DockPanel 为您提供所需的“锚”功能。StackPanel 只是将事物彼此相邻堆叠。

我从您的代码块中注意到您的 StackPanel 已经停靠在停靠面板中,因此我在上面的代码示例中包含了相同的停靠属性。

于 2009-05-06T23:21:37.860 回答