MVVM綁定雙擊事件:
cal:Message.Attach="[Event MouseDoubleClick] = [Action AddSingleFileAction1($this)];"
WPF 雙擊事件:
摘自:http://www.cnblogs.com/xiwang/archive/2012/06/29/2570398.html
由於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; } }
評論補充:
何必這么麻煩? 在mousedown的事件里直接判斷 if(e.ClickCount == 2) { //雙擊時執行 }