ListBox with Stackpanel-Items - 如何启用滚动? WPF

时间:2014-03-23 15:17:05

标签: c# wpf xaml

我想为我的ListBox启用ScrollView。我的ListBox显示StackPanels。 不幸的是我无法为ListBox设置一个特定的高度(这是我找到的唯一可以使用Scroller的解决方案)。

我需要做什么才能为我的ListBox获取ScrollBar? (即使我最小化/最大化窗口,它应该在必要时出现)......

由于

1 个答案:

答案 0 :(得分:2)

嗯,WPF中的ListBox已经包含一个滚动条,您可以强制它显示如下:

<ListBox 
    ScrollViewer.VerticalScrollBarVisibility="Visible">
</ListBox>

很可能你的问题来自这样一个事实:你的列表框位于一个控件中,它没有界定它的高度,因此你的列表框的高度恰好等于所需的空间(可能超过你的屏幕空间) )。例如,尝试将其放在网格中。

所以用一个例子来说明它:

<StackPanel>
    <ListBox>
        <ListBox.Items>
            <TextBlock>Test</TextBlock>
            ...
        </ListBox.Items>
    </ListBox>
</StackPanel>

永远不会显示滚动条,因为stackpanel的高度始终足以让列表框显示所有元素,即使它可能在屏幕上不可见。 但是如果在上面的示例中将StackPanel切换到Grid,则在需要时将使用滚动条,因为Grid将限制子控件(ListBox)的高度。

希望这有帮助。