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