2012-11-01 52 views
9

我在XAML中有一個ListView控件。 這些項目由網格內的TextBlock的模板控件定義。 現在我想在雙擊TextBlock時觸發一個動作。 令我驚訝的是,我發現沒有DoubleClick事件掛鉤......! 我認爲這只是TextBlock,沒有它,但實際上沒有控制。 我在尋找DoubleClick和MouseDoubleClick,但他們肯定缺席。在XAML中找不到DoubleClick

我已閱讀建議,其中EventTrigger添加到帶有手勢=「MouseDoubleClick」的控件中。它看起來很有前途,但在我的情況下,編譯器抱怨並告訴我沒有像MouseDoubleClick這樣的手勢。與DoubleClick相同。

DoubleClick是否在一些.Net版本中消失? 我有.Net Framework 4.5,該項目是WPF應用程序。

我是否必須通過檢測MouseDown並檢查自上次MouseDown以來經過的時間來做出愚蠢的解決方法?聽起來像石塊...

+0

的Silverlight 5僅支持雙擊事件。 –

回答

13

它總是令人耳目一新,以制定您的問題! 經過一段時間的思考後,我想也許他們添加了一個計數器到鼠標事件,而不是單獨的事件。 這似乎是這種情況! MouseButtonEventArgs具有ClickCount屬性。在檢查值2時,我檢測到我的DoubleClick!

雖然只是推出了DoubleClick,但仍有點奇怪。即使在搜索之後,我也沒有發現它何時以及爲何消失。

+0

真是太棒了答案 感謝您的時間和精力 –

11

只是爲了展示該解決方案雅各布表示:

private void img_MouseDown(object sender, MouseButtonEventArgs e) 
     { 
      if (e.LeftButton == MouseButtonState.Pressed && e.ClickCount == 2) 
      { 
       //DO SOMETHING 
      } 
     }