WEB开发网
开发学院图形图像Flash Silverlight学习笔记一:DataGrid如何处理鼠标的滚... 阅读

Silverlight学习笔记一:DataGrid如何处理鼠标的滚轮事件

 2008-12-26 11:54:10 来源:WEB开发网   
核心提示: 继续寻找,功夫不负有心人,Silverlight学习笔记一:DataGrid如何处理鼠标的滚轮事件(3),终于在 silverlight.net 的论坛上找到了一个例子,下载,呵呵,修改一下,实践,每次只滚一下

继续寻找,功夫不负有心人,终于在 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 }

上一页  1 2 3 4  下一页

Tags:Silverlight 学习 笔记

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