展会信息港展会大全

解决ScrollViewer滚动问题的办法
来源:互联网   发布日期:2015-10-03 10:52:56   浏览:2011次  

导读:C 中,两个ScrollViewer嵌套在一起或者ScrollViewer里面嵌套一个ListBox、Listview(控件本身有 scrollviewer)的时候,我们本想要的效果是鼠标滚动整个ScrollViewer的内容,但你会发现实际结果和你想像的不一样 ...

C# 中,两个ScrollViewer嵌套在一起或者ScrollViewer里面嵌套一个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;

this.listbox.RaiseEvent(eventArg);

};

赞助本站

人工智能实验室

相关热词: ScrollViewer 滚动

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港