Silverlight学习笔记一:DataGrid如何处理鼠标的滚轮事件
2008-12-26 11:54:10 来源:WEB开发网继续寻找,功夫不负有心人,终于在 silverlight.net 的论坛上找到了一个例子,下载,实践,每次只滚一下,第二次就不响应,失败。不过他却给出一个很重要的内容,如何调用 ScrollIntoView 。呵呵,修改一下,然后又从 DXperience的AgDataGrid代码中偷了关于响应MouseWheel的Helper终于完整的搞定这个问题了。
代码如下:
1.先写一个MouseHelper.cs用来帮助我们处理MouseWheel
1namespaceSilverlightDemoApp
2 {
3 publicdelegatevoidMouseWheelEventHandler(objectsender,MouseWheelHandlerEventArgse);
4 publicclassMouseWheelHandlerEventArgs:EventArgs
5 {
6 doubledelta;
7 publicMouseWheelHandlerEventArgs():this(0){}
8 publicMouseWheelHandlerEventArgs(doubledelta)
9 {
10 this.delta=delta;
11 }
12 publicdoubleDelta{get{returndelta;}}
13 }
14 internalstaticclassMouseHelper
15 {
16 staticList<MouseWheelEventHandler>wheelHandler=newList<MouseWheelEventHandler>();
17 publicstaticvoidSetMouseWheelHandler(MouseWheelEventHandler_wheelHandler)
18 {
19 wheelHandler.Add(_wheelHandler);
20 if(HtmlPage.IsEnabled&&HtmlPage.Window!=null)
21 {
22 HtmlPage.Window.AttachEvent("DOMMouseScroll",OnMouseWheelTurned);
23 HtmlPage.Window.AttachEvent("onmousewheel",OnMouseWheelTurned);
24 HtmlPage.Document.AttachEvent("onmousewheel",OnMouseWheelTurned);
25 }
26 }
27 staticvoidOnMouseWheelTurned(Objectsender,HtmlEventArgsargs)
28 {
29 doubledelta=0;
30 ScriptObjecteventObj=args.EventObject;
31 if(eventObj.GetProperty("wheelDelta")!=null)
32 {
33 delta=((double)eventObj.GetProperty("wheelDelta"))/120;
34 if(HtmlPage.Window.GetProperty("opera")!=null)
35 delta=-delta;
36 }
37 elseif(eventObj.GetProperty("detail")!=null)
38 {
39 delta=-((double)eventObj.GetProperty("detail"))/3;
40 if(HtmlPage.BrowserInformation.UserAgent.IndexOf("Macintosh")!=-1)
41 delta=delta*3;
42 }
43 if(delta!=0)
44 {
45 args.PreventDefault();
46 eventObj.SetProperty("returnValue",false);
47 }
48 foreach(MouseWheelEventHandlerhandlerinwheelHandler)
49 {
50 handler(null,newMouseWheelHandlerEventArgs(delta));
51 }
52 }
53 }
54 }
Tags:Silverlight 学习 笔记
编辑录入:爽爽 [复制链接] [打 印]- ››笔记本蓝屏错误代码0X0000000A故障处理
- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››学习网站日志分析:网站日志分析各项指标
- ››学习:Ylmf OS安装全过程(视频)
- ››学习了SEO可以做哪些事
- ››学习 Linux,101: 保持文件系统的完整性
- ››Silverlight for Windows Phone 7开发系列(1):...
- ››Silverlight for Windows Phone 7开发系列(2):...
- ››Silverlight for Windows Phone 7开发系列(3):...
- ››Silverlight for Windows Phone 7开发系列(4):...
- ››学习Java,C等程序开发的十大秘诀
更多精彩
赞助商链接