2012-11-01 35 views
9

Tôi có một điều khiển ListView trong XAML. Các mục được xác định bởi một điều khiển mẫu với một TextBlock bên trong một Grid. Bây giờ tôi muốn kích hoạt một hành động khi tôi nhấp đúp vào TextBlock. Trước sự ngạc nhiên của tôi, tôi thấy không có sự kiện DoubleClick nào để kết nối ...! Tôi nghĩ rằng đó chỉ là TextBlock mà không có nó, nhưng thực sự không có điều khiển có nó. Tôi tìm DoubleClick và MouseDoubleClick nhưng chắc chắn họ không có mặt.Không thể tìm thấy DoubleClick trong XAML

Tôi đã đọc đề xuất trong đó EventTrigger được thêm vào điều khiển bằng Cử chỉ = "MouseDoubleClick". Có vẻ đầy hứa hẹn nhưng trong trường hợp của tôi trình biên dịch phàn nàn và nói với tôi rằng không có cử chỉ như vậy như một MouseDoubleClick. Tương tự với DoubleClick.

DoubleClick có biến mất trong một số phiên bản .Net không? Tôi có .Net Framework 4.5 và dự án là Ứng dụng WPF.

Tôi có phải thực hiện các cách giải quyết ngu ngốc bằng cách phát hiện MouseDown và kiểm tra thời gian trôi qua kể từ lần cuối MouseDown không? Nghe có vẻ như stoneage ...

+0

Silverlight 5 chỉ hỗ trợ các sự kiện nhấn đúp chuột. –

Trả lời

13

Nó luôn luôn làm mới để xây dựng vấn đề của bạn! Sau khi suy nghĩ một thời gian, tôi nghĩ có lẽ họ đã thêm một truy cập vào các sự kiện chuột thay vì có các sự kiện riêng biệt. Điều đó có vẻ là trường hợp !!! MouseButtonEventArgs có thuộc tính ClickCount. Khi kiểm tra giá trị 2, tôi phát hiện DoubleClick của mình!

Vẫn còn hơi kỳ quặc khi chỉ tung ra DoubleClick. Ngay cả sau khi tìm kiếm, tôi không tìm thấy tham chiếu nào về thời điểm và lý do tại sao nó biến mất.

+0

Câu trả lời thực sự tuyệt vời cảm ơn thời gian và nỗ lực của bạn –

11

Chỉ cần để hiển thị các giải pháp Jakob có nghĩa là:

private void img_MouseDown(object sender, MouseButtonEventArgs e) 
     { 
      if (e.LeftButton == MouseButtonState.Pressed && e.ClickCount == 2) 
      { 
       //DO SOMETHING 
      } 
     } 
Các vấn đề liên quan