2012-10-22 19 views
9

मैं आसानी से 1 उंगली Tapped, DoubleTap और Holding इशारों इस तरह संभाल कर सकते हैं:हैंडलिंग 2, 3, 4, 5 उंगलियों WinRT App में टेप, DoubleTap और होल्डिंग जेस्चर

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 
} 

लेकिन घटनाओं की जरूरत नहीं है उंगलियों की संख्या प्राप्त करने के लिए एक संपत्ति और स्क्रीन पर 1 से अधिक स्पर्श संपर्क मौजूद होने पर उन्हें निकाल दिया नहीं जाता है। मैं 2, 3, 4, 5 उंगलियों Tapped, DoubleTap और Holding इशारे को भी संभालना चाहता हूं। क्या कोई मुझे बता सकता है कि ऐसा कैसे करें?

उत्तर

4

आप PointerRoutedEventArgs कि सूचक घटनाओं पर पारित कर रहे हैं (यानी। दबाया, में प्रवेश किया, जारी किया है और इस तरह के) के साथ काम करने के लिए है और यह मुश्किल तरीके से

हर बार जब सूचक नियंत्रण में प्रवेश करती है करूँगा एक अनूठा असाइन किया गया है सूचक आईडी। मैं एक शब्दकोश बनाउंगा और प्रत्येक पॉइंटर को उस शब्दकोश में जोड़ दूंगा क्योंकि इसे नियंत्रण पर दबाया जाता है (और जब वे बाहर निकलते हैं तो उन्हें हटा दें)। फिर आपके मौजूदा टैप किए गए, डबल टैप किए गए और ऐसे हैंडलर बस जांचें कि आपके शब्दकोश में कितने पॉइंटर्स हैं और उचित हैंडलर

+0

पर कॉल करना होगा, आपको इसके आसपास कोड करना होगा। आप शायद यह जानने के लिए शब्दकोश पर विस्तार कर सकते हैं कि क्या पॉइंटर ने होल्डिंग ईवेंट निकाल दिया है और फिर आप यह देखने के लिए उस var को देख सकते हैं कि – sLedgem

+0

प्रोग्राम में कितने पॉइंटर्स हैं, अपना स्वयं का 'टैप' प्रोग्राम? पॉइंटर जारी होने का समय लॉग करें और फिर उस समय का उपयोग यह निर्धारित करने के लिए करें कि क्या हुआ? यह हैकी होने जा रहा है लेकिन मैं सबसे अच्छा विकल्प याद करता हूं। दूसरा सवाल स्पष्ट रूप से आप गैर मानक इंटरैक्शन का उपयोग क्यों करना चाहते हैं? – sLedgem