2012-11-01 13 views
9

Mam kontrolkę ListView w XAML. Elementy definiuje kontrolka szablonu z blokadą tekstową wewnątrz siatki. Teraz chcę wywołać akcję po dwukrotnym kliknięciu przycisku TextBlock. Ku mojemu zdziwieniu stwierdzam, że nie ma wydarzenia DoubleClick, które można by podłączyć ...! Myślałem, że to tylko TextBlock, który nie ma go, ale w rzeczywistości żadna kontrola go nie ma. Szukam DoubleClick i MouseDoubleClick, ale są one zdecydowanie nieobecne.Nie mogę znaleźć DoubleClick w XAML

Przeczytałem sugestie, w których parametr EventTrigger został dodany do formantu za pomocą gestu = "MouseDoubleClick". Wygląda obiecująco, ale w moim przypadku kompilator narzeka i mówi mi, że nie ma takiego gestu jak MouseDoubleClick. To samo z DoubleClick.

Czy DoubleClick zniknął w jakiejś wersji .Net? Mam .Net Framework 4.5, a projekt jest aplikacją WPF.

Czy muszę robić głupie obejścia, wykrywając MouseDown i sprawdzać upływ czasu od ostatniego MouseDown? Brzmi jak kamień ...

+0

Silverlight 5 obsługuje tylko podwójne zdarzenia kliknięcia. –

Odpowiedz

13

Zawsze jest orzeźwiające, aby sformułować swój problem! Po pewnym czasie pomyślałem, że może dodali licznik do zdarzeń myszy, zamiast mieć osobne zdarzenia. Wydaje się, że tak jest !!! MouseButtonEventArgs ma właściwość ClickCount. Podczas sprawdzania wartości 2 wykrywam mój DoubleClick!

Jeszcze trochę dziwne, ale po prostu wyrzucić DoubleClick. Nawet po przeszukaniu nie znajduję odniesienia do czasu i przyczyny zniknięcia.

+0

Naprawdę niesamowita odpowiedź dzięki za poświęcony czas i wysiłek –

11

Wystarczy pokazać rozwiązanie Jakob oznacza:

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