silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight技巧 获取鼠标滚轮事件 及 判断获取组合键的方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

这次给大家聊聊如何获取鼠标滚轮事件. 鼠标滚轮事件 在当前版本beta2中并没有 但是我们可以借助 Htmlpage 对象 HtmlPage(System.Windows.browser;)(之前也多次提到过他如何捕捉Silverlight右键点击事件,如何在Silverlight中使用COokie ) 实现此功能  HtmlPage.Window.AttachEven

这次给大家聊聊如何获取鼠标滚轮事件.

鼠标滚轮事件 在当前版本beta2中并没有 但是我们可以借助 Htmlpage 对象 HtmlPage(System.Windows.browser;)(之前也多次提到过他如何捕捉Silverlight右键点击事件,如何在Silverlight中使用Cookie ) 实现此功能

  
  
  1.  HtmlPage.Window.AttachEvent("DOMMouseScroll", OnMouseWheel); 
  2.  HtmlPage.Window.AttachEvent("onmousewheel", OnMouseWheel); 
  3.  HtmlPage.Document.AttachEvent("onmousewheel", OnMouseWheel);         
  4.  
  5.  private void OnMouseWheel(object sender, HtmlEventArgs args) 
  6. { 
  7.  

之后我们要在 方法获取一个旋转角度属性

但是在不同浏览器中 这个属性名称有些不同

根据这个角度我们可以得知鼠标正在向上或是向下滚动

 
 
  1. double mouseDelta = 0; 
  2. ScriptObject e = args.EventObject; 
  3. if (e.GetProperty("detail"!= null
  4. {// 火狐和苹果 
  5.     mouseDelta = ((double)e.GetProperty("detail")); 
  6. }     
  7. else if (e.GetProperty("wheelDelta"!= null
  8. {// IE 和 Opera     
  9.     mouseDelta = ((double)e.GetProperty("wheelDelta")); 
  10. @H_817_30@mouseDelta = Math.Sign(mouseDelta); 
  11. if (mouseDelta > 0)  
  12. { 
  13.     txt.Text = "向上滚动"
  14. else if (mouseDelta<0)  
  15. { 
  16.     txt.Text = "向下滚动"

接下来 再给大家聊聊 如何获取键盘的组合键(比如我们经常按住ctrl+鼠标点击 或者 ctrl+enter)

其实 我们只要用到一个枚举值

 
 
  1. namespace System.Windows.Input 
  2. { 
  3.     // SumMary
  4.     //     Specifies the set of modifier keys. 
  5.     [Flags] 
  6.     public enum ModifierKeys 
  7.     { 
  8.         // SumMary
  9.         //     No modifiers are pressed. 
  10.         None = 0, 
  11.         // 
  12.         // SumMary
  13.         //     The ALT key is pressed. 
  14.         Alt = 1, 
  15.         // 
  16.         // SumMary
  17.         //     The CTRL key is pressed. 
  18.         Control = 2, 
  19.         // 
  20.         // SumMary
  21.         //     The SHIFT key is pressed. 
  22.         Shift = 4, 
  23.         // 
  24.         // SumMary
  25.         //     The Windows logo key is pressed. 
  26.         Windows = 8, 
  27.         // 
  28.         // SumMary
  29.         //     The Apple key (also kNowas the "Open Apple key"is pressed. 
  30.         Apple = 8, 
  31.     } 

具体如何方法

好比我们现在页面注册一个点击事件

 
 
  1. this.MouSELEftButtonDown += new MouseButtonEventHandler(Page_MouSELEftButtonDown); 
  2. void Page_MouSELEftButtonDown(object sender, MouseButtonEventArgs E) 
  3.  {

我们需要在里面做一点儿小操作就可以判断用户是否还在按住了键盘上的某个按键

 
 
  1. @H_817_30@modifierKeys keys = Keyboard.Modifiers; 
  2. txt.Text = ""
  3. if ((keys & ModifierKeys.Shift) != 0) 
  4.     txt.Text += "shift"
  5. if ((keys & ModifierKeys.Alt) != 0) 
  6.     txt.Text += "alt"
  7. if ((keys & ModifierKeys.ApplE) != 0) 
  8.     txt.Text += "apple"
  9. if ((keys & ModifierKeys.Control) != 0) 
  10.     txt.Text += "ctrl"
  11. if ((keys & ModifierKeys.Windows) != 0) 
  12.     txt.Text += "windows"
  13. txt.Text += " + 鼠标点击"

大佬总结

以上是大佬教程为你收集整理的silverlight技巧 获取鼠标滚轮事件 及 判断获取组合键的方法全部内容,希望文章能够帮你解决silverlight技巧 获取鼠标滚轮事件 及 判断获取组合键的方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。