WEB开发网
开发学院WEB开发ASP.NET 解决ScrollViewer滚动问题的办法 阅读

解决ScrollViewer滚动问题的办法

 2012-12-20 19:39:10 来源:WEB开发网   
核心提示: C# 中,两个ScrollViewer嵌套在一起或者ScrollViewer里面嵌套一个ListBox、Listview(控件本身有scrollviewer)的时候,解决ScrollViewer滚动问题的办法,我们本想要的效果是鼠标滚动整个ScrollViewer的内容,但你会发现实际结果和你想像的不一样,一个是Li

 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);
};

Tags:解决 ScrollViewer 滚动

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接