zoukankan      html  css  js  c++  java
  • silverlight 获取鼠标滚轮事件 及 判断获取组合键的方法

    可以借助 Htmlpage 对象 HtmlPage(System.Windows.Browser;)
    HtmlPage.Window.AttachEvent("DOMMouseScroll", OnMouseWheel);
                HtmlPage.Window.AttachEvent(
    "onmousewheel", OnMouseWheel);
                HtmlPage.Document.AttachEvent(
    "onmousewheel", OnMouseWheel);        

                
    private void OnMouseWheel(object sender, HtmlEventArgs args)
               {

               }

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

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

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

                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 
    += " + 鼠标点击"
  • 相关阅读:
    模拟title提示!
    常用CSS缩写语法总结
    cron表达式每个月最后一天,corn表达式使用L报错
    浏览器调试器(F12)详解
    查询重复数据只显示一条并且在规定范围时间内
    java导出统计数据excel设置单元格样式
    微信小程序官方人脸核身认证
    小程序引用app.js中的全局变量
    微信小程序 view中的image水平垂直居中
    MYSQL中的sql_mode模式
  • 原文地址:https://www.cnblogs.com/xh831213/p/1792866.html
Copyright © 2011-2022 走看看