滚动查看器包含列表框.在wpf中选择底部元素时出现垂直滚动条问题
本文关键字:元素 底部 问题 滚动条 垂直 选择 包含 列表 wpf 滚动 | 更新日期: 2023-09-27 18:12:34
我在滚动查看器中放置了一个列表框。
<ScrollViewer x:Name="HostScrollViewer" VerticalScrollBarVisibility="Auto" CanContentScroll="True" VerticalAlignment="Stretch">
<ListBox x:Name = "listBox1">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel IsItemsHost="True" VerticalAlignment="Stretch"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.CanContentScroll="False"
HorizontalAlignment="Stretch" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</ScrollViewer>
我可以滚动所有列表项,但是当我向下滚动列表框项并选择列表框底部的项时,垂直滚动条就会回到初始位置
我相信你正在寻找的正是:
<ListBox x:Name="listBox1" ScrollViewer.CanContentScroll="False" />
问题在你的代码滚动鼠标轮是,你有两个滚动查看器,实际上:HostScrollViewer和一个在列表框模板。
为什么它滚动到顶部,当你选择项目?这是因为当你在HostScrollViewer上设置ScrollViewer.CanContentScroll="False"
时,你在listbox中选择一个项目,hostscrollviewerscroll到listbox而不是listboxitem。只是因为ListBox有另一个滚动查看器。
另一个选项是在列表框中禁用scrollviewer:
<ScrollViewer x:Name="HostScrollViewer" CanContentScroll="False">
<ListBox x:Name = "listBox1"
ScrollViewer.VerticalScrollbarVisibility="Disabled"/>
</ScrollViewer>
但是视觉效果是一样的