WPF 使用鼠标滚轮控制ListBox水平滚动条滚动
来源:互联网 发布:java 接受表单文件 编辑:程序博客网 时间:2024/04/25 07:59
我们都知道在WPF中鼠标滚轮可以控制垂直滚动条滚动,但没有什么属性设置可以让它控制水平滚动条滚动,所以我们需要自己去实现水平滚动。
首先,在ListBox的Mousewheel事件中获得ListBox的滚动条,我发现MouseWheel事件不能被触发,所以我们要这样添加事件:
list.AddHandler(ListBox.MouseWheelEvent, new MouseWheelEventHandler(list_MouseWheel), true);
然后我们需要写一个方法获得LisBox的ScrollViewer:
public static T FindVisualChild<T>(DependencyObject obj) where T : DependencyObject { if (obj != null) { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) { DependencyObject child = VisualTreeHelper.GetChild(obj, i); if (child != null && child is T) { return (T)child; } T childItem = FindVisualChild<T>(child); if (childItem != null) return childItem; } } return null; }
在MouseWheel中写:
private void list_MouseWheel(object sender, MouseWheelEventArgs e) { ItemsControl items = (ItemsControl)sender; ScrollViewer scroll = FindVisualChild<ScrollViewer>(items); if (scroll != null) { int d = e.Delta; if (d > 0) { scroll.LineRight(); } if (d < 0) { scroll.LineLeft(); } scroll.ScrollToTop(); } }
其中,根据鼠标滚轮的变量值可以获得鼠标滚轮的滚动方向,根据滚动方向设置滚动条的滚动方向。
由于默认情况下垂直滚动条由鼠标滚轮控制,所以我们可以让垂直滚动条一直在最上方,然后隐藏垂直滚动条,就可以实现我们想要的效果!
- WPF 使用鼠标滚轮控制ListBox水平滚动条滚动
- ListBox水平滚动条
- 鼠标滚轮控制panel滚动条
- 鼠标滚轮控制panel滚动条
- 鼠标滚轮控制panel滚动条
- WPF中设置listbox的水平滚动条不可用
- ListBox设置水平滚动条
- ListBox 添加水平滚动条
- MFC listbox水平滚动条
- ListBox滚动条 垂直滚动条 水平滚动条
- C#鼠标滚轮处理滚动条滚动
- delphi 用鼠标滚轮控制Form的垂直滚动条
- WPF中ListBox滚动条自动滚动
- 给ListBox加上水平滚动条
- 设置ListBox的水平滚动条
- 设置ListBox的水平滚动条
- 给ListBox添加水平滚动条
- 为ListBox控件添加水平滚动条
- sql字符串函数和操作符
- linux权限计算
- poj 1631 Bridging signals (LIS 最长递增子序列 DP-二分)
- 使用bochs的组件bximage 报错:could not write disk image
- 不懂程序的人,中小企业建站推荐
- WPF 使用鼠标滚轮控制ListBox水平滚动条滚动
- SpringMvc 注释详解
- _Java基础<二>_Java语言基础组成(上)
- 在ubuntu12.04.1LTS上搭建freescale iMX6开发板sabresd_6dq编译环境
- mysql sql语句大全
- 小米可以教给传统企业的6个创新法则
- TransparentBlt、StretchBlt与BitBlt三个函数的区别
- JS判断密码强度
- 何在3个月内拥有3年的工作经验 .