我正在使用PRISM架构。
我的结构如下
<Window Height="300" Width="300">
<Grid>
<ItemsControl>
<UserControl>
<ScrollViewer>
<StackPanel>
</StackPanel>
</ScrollViewer>
</UserControl>
</ItemsControl>
</Grid>
</Window>
水平滚动条显示但垂直不显示。
请注意,如下所示将stackpanel更改为网格无济于事。
<UserControl>
<ScrollViewer>
<Grid>
<StackPanel>
</StackPanel>
</Grid>
</ScrollViewer>
</UserControl>
答案 0 :(得分:4)
将ScrollViewer
放在Grid
内。这有助于ScrollViewer
使用Grid
中的可用空间,如果内容溢出,则会显示滚动条。这取决于您使用UserControl
的位置。确保此UserControl
未放置在ScrollViewer
或任何可滚动控件内。
<UserControl>
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<StackPanel>
</StackPanel>
</ScrollViewer>
</Grid>
</UserControl>
答案 1 :(得分:1)
StackPanel
无限期地增长(即高度不受限制,直到您明确设置为止)。
使用另一个面板说 Grid,DockPanel 等或限制StackPanel的修复高度。
<ScrollViewer>
<DockPanel>
</DockPanel>
</ScrollViewer>
OR
<ScrollViewer>
<StackPanel Height="300">
</StackPanel>
</ScrollViewer>
你也可以这样约束身高:
<StackPanel Height="{Binding ActualHeight,
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window}}"/>