2012-10-22 5 views
9

내가 쉽게이 같은 1 개 손가락 Tapped, DoubleTapHolding 제스처를 처리 할 수 ​​WinRT 응용 프로그램에, DoubleTap 및 지주 제스처를 도청 :처리 2, 3, 4, 5 개 손가락

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, DoubleTapHolding 제스처를 처리하려고합니다. 아무도 그렇게하는 법을 말해 줄 수 있습니까?

답변

4

당신은 (발표하며, 입력, 예. 누름) 포인터 이벤트에 전달되는 PointerRoutedEventArgs 작업을해야하고 그것을마다 포인터가 컨트롤에 들어가면

어려운 길을 다하겠습니다 고유 할당됩니다 포인터를 ID.I 사전을 만들고 해당 컨트롤에 눌렀을 때 해당 사전에 각 포인터를 추가합니다 (그리고 분명히 나가면 끝낼 때). 그런 다음 기존의 두드리기 및 이중 핸들러에서 사전에 몇 개의 포인터가 있는지 확인하고 적절한 핸들러를 호출하십시오.

+0

코드를 사용해야합니다. 사전에서 포인터가 지탱 이벤트를 발생 시켰는지 여부를 저장하기 위해 사전을 확장 한 다음 var를 확인하여 보유 할 포인터의 수를 확인할 수 있습니다 – sLedgem

+0

직접 '탭핑'프로그램을 만드시겠습니까? 포인터가 풀린 시간을 기록한 다음 그 시간을 사용하여 어떤 일이 있었는지 확인하십시오. 그것 hackey가 될거야하지만 난 그게 최선의 옵션을 재검토. 다른 질문은 분명히 왜 비표준 상호 작용을 사용하고 싶습니까? – sLedgem