我想要一个滚动条出现在堆栈面板中,当有太多项目无法放入屏幕时,就像ListBox一样。我不能把它放到滚动查看器中,因为在这种情况下,水平StackPanel会停止缩放元素。 ScrollViewer告诉它的内容,它有无限的适合位置,并且项目始终保持其原始大小,ScrollViewer只是裁剪元素,如果高度太小则显示垂直滚动条,如果太大则留下空白空间。 我可能需要对ScrollViewer的MeasureOverride()方法进行一些棘手的覆盖,使其内容适合该面板而不显示垂直滚动条并获取所需的宽度,但到目前为止我的所有尝试都失败了。
答案 0 :(得分:1)
ScrollViewer.HorizontalScrollBarVisibility
和ScrollViewer.VerticalScrollbarVisibility
的值将决定ScrollViewer中元素的布局行为。
此:
<ScrollViewer VerticalScrollBarVisibility="Disabled"
HorizontalScrollBarVisibility="Auto">
<StackPanel Orientation="Horizontal">
<!-- ... -->
</StackPanel>
</ScrollViewer>
将导致在需要时显示水平滚动条,同时垂直拉伸(不是缩放,这是完全不同的)StackPanel内容。