WPF的项目,ListBox 纵向滚动条不显示


最近在做WPF的项目,ListBox 纵向滚动条不显示,但是鼠标滚轮可以在ListBox中使用,但是必须要出现纵向滚动条。 
索性就直接在listBox外面包裹一个ScrollViewer。
ScrollViewer中放一个listBox,可以拖动滚动条,但是滚轮上下滚动无效,后来找到原因,是因为listBox中自带一个滚动条,滚轮上下滚动事件应该是被截获了,而并没有传递到ScrollViewer这一层导致的,那么怎么解决呢?
很简单,直接让listBox.Enable=false或者listBox.IsHitTestVisable=false即可,但是这样有个缺点,就是无法选中listBox中的内容了,那只能用另一个方法,代码如下:

      ListBox.PreviewMouseWheel += (sender, e) => { var eventArg = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta); eventArg.RoutedEvent = UIElement.MouseWheelEvent; eventArg.Source = sender; ListBox.RaiseEvent(eventArg); }; 
将listBox的滚动时间传递到上层,让ScrollViewer去处理即可.


原文出处: https://blog.csdn.net/wcc27857285/article/details/53283169



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM