silverlight技巧 获取鼠标滚轮事件 及 判断获取组合键的方法

silverlight技巧 获取鼠标滚轮事件 及 判断获取组合键的方法,第1张

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

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

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

     HTMLPage.Window.AttachEvent("DOMMouseScroll", OnMouseWheel);        HTMLPage.Window.AttachEvent("onmousewheel", OnMouseWheel);        HTMLPage.document.AttachEvent("onmousewheel", OnMouseWheel);                       private voID OnMouseWheel(object sender, HTMLEventArgs args)                        

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

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

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

  double mouseDelta = 0;     ScriptObject e = args.EventObject;     if (e.GetProperty("detail") != null    {// 火狐和苹果         mouseDelta = ((double)e.GetProperty("detail"));     }         else if (e.GetProperty("wheelDelta") != null    {// IE 和 Opera             mouseDelta = ((double)e.GetProperty("wheelDelta"));         mouseDelta = Math.Sign(mouseDelta);     if (mouseDelta > 0)              txt.Text = "向上滚动"        else if (mouseDelta<0)              txt.Text = "向下滚动"      

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

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

  namespace System.windows.input             // Summary:         //     SpecifIEs the set of modifIEr keys.         [Flags]         public enum ModifIErKeys         {             // Summary:             //     No modifIErs are pressed.             None = 0,             //             // Summary:             //     The ALT key is pressed.             Alt = 1,             //             // Summary:             //     The CTRL key is pressed.             Control = 2,             //             // Summary:             //     The SHIFT key is pressed.             Shift = 4,             //             // Summary:             //     The windows logo key is pressed.             windows = 8,             //             // Summary:             //     The Apple key (also kNown as the "Open Apple key"is pressed.             Apple = 8,         }       

具体如何方法

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

  this.MouseleftbuttonDown += new MousebuttonEventHandler(Page_MouseleftbuttonDown);     voID Page_MouseleftbuttonDown(object sender, MousebuttonEventArgs e)      {}   

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

  ModifIErKeys keys = Keyboard.ModifIErs;     txt.Text = ""    if ((keys & ModifIErKeys.Shift) != 0)         txt.Text += "shift"    if ((keys & ModifIErKeys.Alt) != 0)         txt.Text += "alt"    if ((keys & ModifIErKeys.Apple) != 0)         txt.Text += "apple"    if ((keys & ModifIErKeys.Control) != 0)         txt.Text += "ctrl"    if ((keys & ModifIErKeys.windows) != 0)         txt.Text += "windows"    txt.Text += " + 鼠标点击"  

以上是个人总结的一点小技巧而已~ 希望这点技巧对你有所帮助^^

Source code: Mouse_Wheel_keys_Event Deom

@H_403_2@ 总结

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1054434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存