路由事件(鼠标路由事件+键盘路由事件)

1:常规的鼠标路由事件定义:

#region 路由事件
        public static readonly RoutedEvent CrossIconClickedEvent = EventManager.RegisterRoutedEvent("CrossIconClicked",
            RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(FilterLabel));
        #endregion

#region CLR事件
        public event RoutedEventHandler CrossIconClicked
        {
            add { this.AddHandler(CrossIconClickedEvent, value); }
            remove { this.RemoveHandler(CrossIconClickedEvent, value); }
        }
        #endregion

#region 私有方法
        /// <summary>
        /// 点击删除图标,引发CrossIconClicked事件
        /// </summary>
        private void ImageDel_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            //引发路由事件
            RoutedEventArgs newEvent = new RoutedEventArgs(FilterLabel.CrossIconClickedEvent, this);
            this.RaiseEvent(newEvent);
        }
        #endregion

2:键盘路由事件定义

#region 路由事件
        public static readonly RoutedEvent FreeKeyDownEvent = EventManager.RegisterRoutedEvent("FreeKeyDown",
            RoutingStrategy.Bubble, typeof(KeyEventHandler), typeof(FreeDatePicker));
        #endregion

#region CLR事件
        //
        // 摘要:
        //     在焦点位于此元素上并且用户按下键时发生。
        public event KeyEventHandler FreeKeyDown
        {
            add { this.AddHandler(FreeKeyDownEvent, value); }
            remove { this.RemoveHandler(FreeKeyDownEvent, value); }
        }
        #endregion

/// <summary>
        /// 触发FreeKeyDown事件(非鼠标的键盘路由事件)
        /// </summary>
        private void Date_TextBox_KeyDown(object sender, KeyEventArgs e)
        {
            KeyEventArgs newEvent = new KeyEventArgs(e.KeyboardDevice, e.InputSource, e.Timestamp, e.Key);
            newEvent.RoutedEvent = FreeDatePicker.FreeKeyDownEvent;
            this.RaiseEvent(newEvent);
        }

原文地址:https://www.cnblogs.com/changbaishan/p/9355900.html

时间: 2024-10-23 18:11:40

路由事件(鼠标路由事件+键盘路由事件)的相关文章

AngularJS路由系列(5)-- UI-Router的路由约束、Resolve属性、路由附加数据、路由进入退出事件

本系列探寻AngularJS的路由机制,在WebStorm下开发.主要包括: ● UI-Router约束路由参数● UI-Router的Resolve属性● UI-Router给路由附加数据● UI-Router的onEnter和onExit事件 AngularJS路由系列包括: 1.AngularJS路由系列(1)--基本路由配置2.AngularJS路由系列(2)--刷新.查看路由,路由事件和URL格式,获取路由参数,路由的Resolve3.AngularJS路由系列(3)-- UI-Rou

AngularJS路由系列(2)--刷新、查看路由,路由事件和URL格式,获取路由参数,路由的Resolve

本系列探寻AngularJS的路由机制,在WebStorm下开发.主要包括: ● 刷新路由● 查看当前路由以及所有路由● 路由触发事件● 获取路由参数 ● 路由的resolve属性● 路由URL格式 项目文件结构 node_modules/ public/.....app/..........bower_components/...............toastr/....................toastr.min.css....................toastr.min

mfc 鼠标、键盘响应事件

一.基本目标 1.有一个基本的MFC程序,点击“关闭”则“关闭”这个程序,这点没什么好讲的,把自带的“取消”按钮,右键->属性的Caption改成“关闭”二字就可以了 2.鼠标在对话框中移动,则显示其位置信息,这个坐标是窗口内部坐标 3.如果按着鼠标右键移动鼠标,则在这个工程的标题栏会显示“按着鼠标右键移动鼠标”,松开鼠标右键回复如初 4.如果按着键盘上的Ctrl键或者Shift键在对话框的窗口中移动鼠标,标题栏同样会有相应的提示,是否同时按下也会有提示 5.左击对话框,会弹出对话框,显示鼠标位

WPF:检测用户在一定时间内没有动作(即没有鼠标键盘的事件)

参考的网址有: http://bbs.csdn.net/topics/100033612 http://blog.csdn.net/dengta_snowwhite/article/details/6154199 详细做法: 1.定义结构体 [StructLayout(LayoutKind.Sequential)]    struct LASTINPUTINFO    {        // 设置结构体块容量        [MarshalAs(UnmanagedType.U4)]       

【mfc】鼠标、键盘响应事件

对于mfc这东西,你真的必要跟我扯一大堆怎么类,什么派生,什么鬼东西 告诉我怎么做出一个个小功能,我记住它就可以了 这期为大家带来MFC的鼠标响应事件 这也是所谓的MFC中的"消息映射事件" 一.基本目标 1.有一个基本的MFC程序,点击"关闭"则"关闭"这个程序,这点没什么好讲的,把自带的"取消"按钮,右键->属性的Caption改成"关闭"二字就可以了 2.鼠标在对话框中移动,则显示其位置信息,这

JS 事件(9)—键盘事件

键盘事件 对键盘事件的支持主要遵循的是DOM0级. “DOM3级事件”为键盘事件制定了规范,IE9率先实现. keydown事件 按下键盘上的任意键触发:按住不放,重复触发. keypress事件 按下键盘上的字符键触发:按住不放,重复触发. 按下Eec键也会触发这个事件. keyup事件 释放键盘上的键时触发. 触发顺序 (1)当按下键盘上的一个字符键时,首先触发keydown事件,然后紧跟着keypress事件,最后会触发keyup事件.其中,keydown和keypress事件是在文本框发

鼠标指针停止运动触发事件实例代码

鼠标指针停止运动触发事件实例代码:在js中有有内置的鼠标各种事件,比如click事件,mousemove事件等等,但是并没有鼠标指针停止运动这个事件,下面就利用jquery模拟实现此效果,希望能够给需要的朋友带来一定的帮助.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="ht

用js onselectstart事件鼠标禁止选中文字

IE&&Chrome中适用此方法 document.onselectstart=function(){return false;} onselectstart是防止内容被选中默认状态是true <body onselectstart=return(event.srcElement.type=='text')> 选不中 <input type="text" name="" value="来选吧"> </

WPF 捕获键盘输入事件

最近修改的一个需求要求捕获键盘输入的 Text,包括各种标点符合. 最开始想到的是 PreviewKeyDown 或者 PreviewKeyUp 这样的键盘事件. 但是这两个事件的对象 KeyEventArgs 不够用,得依靠判断 Key 来判断输入了什么,然后再根据判断写死一个相应键位的 Text 来获取数据. 如组合键获取 乘号键 需要用到 Shift + 8(数字键盘那的乘号键是 Key.Multiply ,而需要在主键盘位获取则需要用到组合键) 1 private void Window