zoukankan      html  css  js  c++  java
  • 解决ScrollViewer嵌套的DataGrid、ListBox等控件的鼠标滚动事件无效

    C# 中,两个ScrollViewer嵌套在一起或者ScrollViewer里面嵌套一个DataGrid、ListBox、Listview(控件本身有scrollviewer)的时候,我们本想要的效果是鼠标滚动整个ScrollViewer的内容,但你会发现实际结果和你想像的不一样,内部有scrollviewer的内容不会随鼠标的滚动而滚动,怎么办呢?

    解决办法如下:

    先截取外面的ScrollViewer的滚动事件,然后再重新让外面的ScrollViewer触发滚动事件就可以了

    假设有2个控件,一个是Listbox(内部名字是listbox),一个是ScrollViewer(外部),Listbox在ScrollViewer内部的,并且ListBox的scroll滚动功能都禁用为Disabled,只启用外部ScrollViewer的滚动功能,这时添加如下代码,则能使ListBox中的内容随ScrollViewer的鼠标滚动而滚动

    listbox.PreviewMouseWheel+=(sender,e)
    {
      var eventArg = new MouseWheelEventArgs(e.MouseDevice,e.TimeDevice,e.Delta);
      eventArg.RoutedEvent = UIElement.MouseWheelEvent;
      eventArg.Source = sender;
      var listbox = (Listbox) sender;
      listbox.RaiseEvent(eventArg);
    };
  • 相关阅读:
    tomcat常见错误及解决方案
    MySQL 5.6 for Windows 解压缩版配置安装
    win7 cmd 操作mysql数据库
    @Responsebody与@RequestBody
    ajax常用参数
    JSP和servlet有什么区别?
    面试 小总结
    cocoapods导入三方库头文件找不到问题
    git笔记
    iOS裁剪,缩放图片白边问题解决办法
  • 原文地址:https://www.cnblogs.com/lionwang/p/4569847.html
Copyright © 2011-2022 走看看