如何在ScrollViewer中显示ListBox滚动条?

时间:2012-01-09 04:00:53

标签: c# wpf user-interface listbox scrollviewer

我有ScrollViewer,其中包含DockPanel,其中包含ListBox作为其填充元素。我面临的问题是,当ListBox包含许多项目,并且窗口的高度减少到需要滚动条的位置时,会出现ScrollViewer的滚动条,推动我的屏幕上显示DockPanel.Dock="Bottom"的控件。 ListBox的滚动条永远不会出现。相反,当窗口高度减小时,我希望ListBox的滚动条首先出现。然后,在ListBox收缩到我指定的某个最小高度后,ScrollViewer的滚动条应该会显示其余部分。

怎么办?

2 个答案:

答案 0 :(得分:1)

您应该将ListView的MinHeight属性设置为您希望ScrollViewer的ScrollBar为apear或启用的特定高度。 ListView的高度属性应该绑定到ScrollViewer的高度属性。然后当Window的高度减少到高度时隐藏ListView中的一些列表,ListView的ScrollBar会出现。当ListView的高度达到其MinHeight时,ScrollViewer的ScrollBar会出现。

这是Xaml代码:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <ScrollViewer VerticalScrollBarVisibility="Auto">
            <DockPanel>
                <ListView x:Name="listView1" DockPanel.Dock="Bottom" MinHeight="100" Height="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=ScrollViewer, AncestorLevel=1}, Path=ActualHeight}"/>
            </DockPanel>
        </ScrollViewer>
    </Grid>
</Window>

答案 1 :(得分:1)

哎呀,看来我的问题已在这里得到解答: Nested Scroll Areas