WPF 双击事件
2013-05-07 22:25
225 查看
由于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;
}
}
转自:http://www.cnblogs.com/xiwang/archive/2012/06/29/2570398.html
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;
}
}
转自:http://www.cnblogs.com/xiwang/archive/2012/06/29/2570398.html
相关文章推荐
- WPF: 在 MVVM 设计中实现对 ListViewItem 双击事件的响应
- C# Note16: wpf window 中添加enter和双击事件
- Wpf中双击事件
- WPF: 在 MVVM 设计中实现对 ListViewItem 双击事件的响应
- WPF为ListBox添加ListBoxItem的双击事件
- wpf datagrid 行双击事件
- WPF双击事件
- WPF双击事件
- wpf中手动添加双击事件
- wpf 双击事件及全屏和退出全屏
- WPF 之 鼠标双击事件
- wpf ListBox 双击事件时在子项添加Style 确保选中
- wpf window stackpanel等控件的双击放大缩小主窗体事件
- WPF中如何将ListViewItem双击事件绑定到Command
- WPF listviewItem 鼠标双击事件
- WPF 双击事件
- WPF-Listbox-ListboxItem双击事件实现-MVVM模式
- WPF控件模拟双击事件
- WPF ListView和ListBox等双击事件问题
- WPF对ListView的ListViewItem添加双击事件