您的位置:首页 > 其它

silverlight中DataGrid如何处理鼠标的滚轮事件

2009-02-20 15:06 603 查看
1publicpartialclassNorthWind:UserControl
2 {
3     //DataGrid的数据
4     privateList<Products>_product;
5     //标示数据是否在DataGrid上
6     privateboolIsMouseInControl{get;set;}
7
8    publicNorthWind()
9     {
10       InitializeComponent();
11       //处理MouseWheel
12       MouseHelper.SetMouseWheelHandler(OnMouseWheel);
13       BindGrid();
14     }
15
16    privatevoidBindGrid()
17     {
18      //DataGrid绑定数据
19      //从WCF中获取Products数据,并保存到_product中。
20      //以下代码省略
21     }
22
23    publicvoidOnMouseWheel(objectsender,MouseWheelHandlerEventArgsargs)
24     {
25       //如果鼠标不在DataGrid上,就不做处理
26       if(!IsMouseInControl)return;
27       intmouseDelta=Math.Sign(args.Delta);
28       varselectedItem=dgData.SelectedIndex;
29       //每次向下滚动一条记录
30       varnextRow=selectedItem-(int)mouseDelta*1;
31       if(nextRow>-1&&nextRow<_product.Count)
32       {
33         dgData.ScrollIntoView(_product[nextRow],null);
34         dgData.SelectedIndex=nextRow;
35       }
36     }
37
38    privatevoiddgData_MouseEnter(objectsender,MouseEventArgse)
39     {
40       //鼠标进入DataGrid
41       IsMouseInControl=true;
42     }
43
44    privatevoiddgData_MouseLeave(objectsender,MouseEventArgse)
45     {
46       //鼠标离开DataGrid
47       IsMouseInControl=false;
48     }
49  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息