由于WPF中没有鼠标的双击事件,因而只能通过MouseDown事件来模拟。当连续的两次MouseDown事件的时间间隔,没有超过一个设定的时间阈值时,就计算为一个双击事件,并作相应的处理。

  利用WPF中System.Windows.Threading.DispatcherTimer来做定时处理,不建议使用System.Timers.Timer。当定时事件发生时,就重置计数器为0,定时,单击事件中对计数器加1,并计数器是否为2的整数倍(即是否在设定的时间间隔内,发生两次MouseDown 事件)。如果是则作为双击事件处理。

int i = ;
private void Grid_MainTitle_MouseDown(object sender,
MouseButtonEventArgs e)
{
i+=;
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = new TimeSpan(, , , , );
timer.Tick += (s, e1) => { timer.IsEnabled = false; i = ; };
timer.IsEnabled = true;
if (i % == )
{
timer.IsEnabled = false;
i = ;
this.WindowState = this.WindowState == WindowState.Maximized ?
WindowState.Normal : WindowState.Maximized;
}
}

WPF 之 鼠标双击事件的更多相关文章

  1. WPF DataGrid 鼠标双击选中的DataGridRow及Row数据

    设置DataGrid的MouseDoubleClick事件 代码 //DataGrid鼠标双击事件 Private void dataGrid_MouseDoubleClick(object send ...

  2. IE和Chrome执行javascript对鼠标双击事件的不同响应

    最近在用天地图API帮同学做点开发的工作,主要是基于天地图的API实现违法用地举报的在线地图标绘,要实现的效果如下: 由于是基于天地图API的TPolygonTool工具实现面积量测和多边形绘制功能, ...

  3. EasyUI使用之鼠标双击事件

    easyui鼠标双击事件,使用 onDblClickRow(index, row) 事件,在用户双击一行的时候触发,参数包括: index:点击的行的索引值,该索引值从0开始. row:对应于点击行的 ...

  4. MFC鼠标单击截获鼠标双击事件,且无法记录单击的数据的解决方案

    遇到的问题: 鼠标点击会截断鼠标双击的事件,无法保存椭圆的数据.也就是说双击执行的过程是OnLButtonDown,OnLButtonUp,OnLButtonDblClk,OnLButtonUp.并不 ...

  5. Silverlight 鼠标双击 事件

    Silverlight 双击事件例子 <UserControl x:Class="MouseDbClick.MainPage" xmlns="http://sche ...

  6. java列表组件鼠标双击事件的实现

    Swing中提供两种列表组件,分别是列表框(JList)和组合框(JComboBox). 一.JList组件 构造方法: public JList():构造一个空的.具有只读模型的JList.publ ...

  7. WPF 自定义Grid双击事件

    先设置Grid_MouseDown事件函数,然后在函数内增加如下代码 ) { //双击执行 } 更改数字可以区别单击和双击 感谢@一 定 会 去 旅 行

  8. Unity 如何检测鼠标双击事件

    代码如下: void OnGUI(){ Event e=Event.current; )) Debug.Log("用户双击了鼠标"); }

  9. javascript模拟鼠标双击事件

    通常我们在做开发的时候需要通过单击切换对立事件,简单做了一个模型. <!DOCTYPE html> <html> <head> <title>javas ...

随机推荐

  1. windows2008 RDP修改默认端口

    PortNumber[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Teminal Sever\Wds\rdpwd\Tds\tcp] [HKE ...

  2. Struct2提交表单数据到Acion

    Struct2提交表单数据到Action,Action取表单的数据,传递变量.对象 HTML.jsp <form action="reg.do" method="p ...

  3. (mac)Android Studio安装以及Fetching android sdk component information超时的解决方案

    解决Mac下面Fetching android sdk component information加载过久问题, 关于windows中可以参考前面一篇文章 关于安装和下载可以百度一下地址.安装完成后, ...

  4. C#读取文件为byte数组

    private byte[] FileContent(string fileName) { using (FileStream fs = new FileStream(fileName, FileMo ...

  5. reentrant可重入函数

    在多任务操作系统环境中,应用程序的各个任务是并发运行的,所以会经常出现多个任务“同时”调用同一个函数的情况.这里之所以在“同时” 这个词上使用了引号,是因为这个歌”同时“的含义与我们平时所说的同时不是 ...

  6. class bool

    class bool(int): """ bool(x) -> bool Returns True when the argument x is true, Fal ...

  7. 在完成端口中使用GetAcceptExSockaddrs

    MSDN:When using AcceptEx, the GetAcceptExSockaddrs function must be called to parse the buffer into ...

  8. 学习总结(annotation)

    自定义MyAnnotationTest package com.zhanghaobo.annotation; import java.lang.annotation.ElementType; impo ...

  9. 利用HTML5开发Android(1)---Android设备多分辨率的问题

    Android浏览器默认预览模式浏览 会缩小页面 WebView中则会以原始大小显示 Android浏览器和WebView默认为mdpi.hdpi相当于mdpi的1.5倍 ldpi相当于0.75倍 三 ...

  10. VTK序列图像的读取[转][改]

    医学图像处理的应用程序中,经常会碰到读取一个序列图像的操作.比如CT.MR等所成的图像都是一个切面一个切面地存储的,医学图像处理程序要处理这些数据,第一步当然是把这些数据从磁盘等外部存储介质中导入内存 ...