由于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;
     }
}

 

相关文章:

  • 2022-01-01
  • 2022-03-03
  • 2021-09-03
  • 2021-09-18
  • 2021-11-24
  • 2022-02-07
  • 2022-12-23
  • 2021-11-17
猜你喜欢
  • 2022-12-23
  • 2022-01-19
  • 2021-07-17
  • 2022-12-23
  • 2021-08-10
  • 2022-12-23
  • 2022-02-17
相关资源
相似解决方案