2012-10-22 14 views
9

Kolayca böyle 1 parmak Tapped, DoubleTap ve Holding hareketlerini işleyebilir WinRT Uygulaması'nda, DoubleTap & Holding Hareketleri Tapped:Taşıma 2, 3, 4, 5 Parmaklar

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 
} 

Ama olaylar yok parmak sayısını elde etmek için bir özellik ve ekranda 1'den fazla dokunma kontağı olduğunda bile ateş etmiyorlar. Ayrıca 2, 3, 4, 5 parmaklı Tapped, DoubleTap ve Holding hareketlerini de ele almak istiyorum. Bana bunu nasıl yapacağımı söyleyen var mı?

cevap

4

Sen (serbest ve böyle girdi, yani. Preslenmiş) Pointer olaylarına geçirilen PointerRoutedEventArgs ile çalışmak zorunda ve ona her zaman işaretçi kontrolünü girer

zor yoldan yapacağız benzersiz atanır imleç ID.I bir Sözlük oluşturacak ve her işaretçiyi bu sözlüke kontrol üzerine basıldığında ekleyecektir (ve açık olduklarında çıkarınız). Daha sonra, mevcut dokunuşunuzda, çift dokunan ve bu tür işleyicilerinizde, sözlüğünüzde kaç tane işaretçinin bulunduğunu kontrol edin ve uygun işleyicileri arayın

+0

Çevrenizde kod yazmanız gerekecek. Belki de bir işaretçinin tutma olayını tetikleyip tetiklemediğini depolamak için sözlükte genişletebilir ve daha sonra, – sLedgem

+0

Programının kendi 'dokunarak' tuttuğunu gösteren kaç tane işaret olduğunu kontrol edebilirsiniz. İşaretçiyi serbest bırakma zamanını günlüğe kaydet ve sonra ne olduğunu belirlemek için bu zamanı kullan? Onun hakikati olacak ama en iyi seçenek bu. Diğer soru açıkçası neden standart olmayan etkileşimleri kullanmak istiyorsun? – sLedgem