2012-10-22 36 views
9

tôi có thể dễ dàng xử lý 1 ngón tay Tapped, DoubleTapHolding cử chỉ như thế này:Xử lý 2, 3, 4, 5 ngón tay Tapped, DoubleTap & Tổ chức Gestures trong WinRT App

public MainPage() 
{ 
    this.InitializeComponent(); 
    this.Tapped += mc_Tapped; 
    this.DoubleTapped += mc_DoubleTapped; 
    this.Holding += mc_Holding; 
} 
public void mc_Tapped(object sender, TappedRoutedEventArgs e) 
{ 
    //Tap 
} 
public void mc_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e) 
{ 
    //DoubleTap 
} 
public void mc_Holding(object sender, HoldingRoutedEventArgs e) 
{ 
    //Hold 
} 

Nhưng những sự kiện không có một tài sản để có được số lượng các ngón tay và họ thậm chí không bị sa thải khi có hơn 1 liên lạc cảm ứng có mặt trên màn hình. Tôi cũng muốn xử lý các cử chỉ 2, 3, 4, 5, Tapped, DoubleTapHolding. Bất cứ ai có thể cho tôi biết làm thế nào để làm điều đó?

Trả lời

4

Bạn sẽ phải làm việc với các PointerRoutedEventArgs đó được truyền vào các sự kiện con trỏ (tức. Pressed, nhập vào, phát hành và như vậy) và làm điều đó một cách khó khăn

Mỗi con trỏ thời gian đi vào kiểm soát được gán một độc đáo ID con trỏ. Tôi sẽ tạo một từ điển và thêm mỗi con trỏ vào từ điển đó khi nó được nhấn trên điều khiển (và rõ ràng là loại bỏ chúng khi chúng thoát). Sau đó, trong khai thác, khai thác đôi và xử lý như vậy hiện tại của bạn chỉ cần kiểm tra có bao nhiêu con trỏ trong từ điển của bạn và gọi xử lý thích hợp

+0

Bạn sẽ phải mã xung quanh nó. Bạn có lẽ có thể mở rộng trên từ điển để lưu trữ cho dù một con trỏ đã bắn sự kiện tổ chức và sau đó bạn có thể kiểm tra var đó để xem có bao nhiêu con trỏ đang nắm giữ – sLedgem

+0

Chương trình của riêng bạn 'khai thác'? đăng nhập thời gian con trỏ được phát hành và sau đó sử dụng thời gian đó để xác định những gì đã xảy ra? Nó sẽ được hackey nhưng tôi recon thats lựa chọn tốt nhất. Câu hỏi khác rõ ràng là Tại sao bạn muốn sử dụng các tương tác không chuẩn? – sLedgem

Các vấn đề liên quan