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