ScrollViewer里面(Stack-)面板

时间:2015-01-25 11:06:41

标签: wpf

我正在使用StackPanel内的ScrollViewer。 ScrollViewer只显示一个滚动条,具体取决于StackPanel的方向,当StackPanel认为在该方向上无限时,我会理解这一点。因此,我尝试通过将其绑定到StackPanel的宽度和高度来限制ScrollViewer的大小。当应用程序启动时,它会显示两个滚动条,但它们不会正确调整大小。有什么问题或我应该怎么做。

(注意:我知道我可以使用Grid而不是StackPanel,ScrollViewer的行为与预期一致。但是,一旦我将Grid放入StackPanel,问题就会再次出现。)

<Window x:Class="tt_WPF.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="500" Width="500">
<StackPanel x:Name="sp" Orientation="Horizontal">
    <ScrollViewer
        HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" 
        Width="{Binding ElementName=sp, Path=ActualWidth}"
        Height="{Binding ElementName=sp, Path=ActualHeight}">
        <Button Background="LightCoral" Width="500" Height="500">Hey</Button>
    </ScrollViewer>
</StackPanel>

2 个答案:

答案 0 :(得分:1)

滚动查看器在垂直StackPanel中无用。垂直StackPanel的高度设置为无穷大,因此ScrollViewer具有所需的所有大小,并且永远不会显示滚动条。您应该切换到Grid或DockPanel。

答案 1 :(得分:-1)

我遇到了同样的问题,我通过切换stackpanel和scrollviewer解决了这个问题。