我正在使用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>
答案 0 :(得分:1)
滚动查看器在垂直StackPanel中无用。垂直StackPanel的高度设置为无穷大,因此ScrollViewer具有所需的所有大小,并且永远不会显示滚动条。您应该切换到Grid或DockPanel。
答案 1 :(得分:-1)
我遇到了同样的问题,我通过切换stackpanel和scrollviewer解决了这个问题。