zoukankan      html  css  js  c++  java
  • WPF ScrollViewer嵌套Listbox无法滚动

    最近在做项目的时候,发现listBoxzi自带的垂直滚动条有问题,经常在Add(item)的时候下面会多出一些空白的部分,而且滚动条的长度也是无规则的,一会大一会小,而且无法控制横竖滚动条的显隐藏,并没有找到滚动条的属性,有人会说在xmal里改就好啦,我是使用C#后台代码写的,所以很难拿到滚动条,当然可以把滚动条抠出来,但是有点繁琐了
    索性就直接在listBox外面包裹一个ScrollViewer。
    ScrollViewer中放一个listBox,可以拖动滚动条,但是滚轮上下滚动无效,后来找到原因,是因为listBox中自带一个滚动条,滚轮上下滚动事件应该是被截获了,而并没有传递到ScrollViewer这一层导致的,那么怎么解决呢?
    很简单,直接让listBox.Enable=false或者listBox.IsHitTextVisable=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去处理即可.
    
  • 相关阅读:
    #include <utility>
    Html的空格显示
    ExtJs自学教程(1):一切从API開始
    天黑的时候,我又想起那首歌
    citrix协议ICA技术原理
    约瑟夫环问题
    数据结构和算法设计专题之---八大内部排序
    HDU
    深入分析C++引用
    八大排序算法总结
  • 原文地址:https://www.cnblogs.com/kevinWu7/p/10163546.html
Copyright © 2011-2022 走看看