zoukankan      html  css  js  c++  java
  • WPF 之 鼠标双击事件

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

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

    int i = 0;
    private void Grid_MainTitle_MouseDown(object sender,
    MouseButtonEventArgs e)
    {
         i+=1;
         DispatcherTimer timer = new DispatcherTimer();
         timer.Interval = new TimeSpan(0, 0, 0, 0, 300);
         timer.Tick += (s, e1) => { timer.IsEnabled = false; i = 0; };
         timer.IsEnabled = true;
         if (i % 2 == 0)
         {
             timer.IsEnabled = false;
             i = 0;
             this.WindowState = this.WindowState == WindowState.Maximized ?
                           WindowState.Normal : WindowState.Maximized;
         }
    }
  • 相关阅读:
    Python爬虫的开发
    JSON
    XPath
    w3c
    Python I/O操作
    【转】C语言中DEFINE简介及多行宏定义
    【转】C++中#if #ifdef 的作用
    srand()、rand()、time()函数的用法
    排序算法之冒泡排序、选择排序
    Java Spring学习笔记
  • 原文地址:https://www.cnblogs.com/xinaixia/p/5518754.html
Copyright © 2011-2022 走看看