在WinRT应用程序中处理2,3,4,5手指攻丝,双击和握持手势

Elm*_*lmo 9 .net c# vb.net windows-runtime

我可以轻松处理1个手指Tapped,DoubleTap并且Holding这样做:

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
}
Run Code Online (Sandbox Code Playgroud)

但是事件没有获得手指数量的属性,并且当屏幕上存在多于1个触摸接触时它们甚至不会被触发.我也想处理2,3,4,5个手指Tapped,DoubleTapHolding手势.谁能告诉我怎么做?

小智 4

您必须使用在指针事件(即按下、输入、释放等)上传递的 PointerRoulatedEventArgs 并以困难的方式完成它

每次指针进入控件时都会分配一个唯一的指针 ID。我将创建一个字典,并在按下控件时将每个指针添加到该字典中(显然,当它们退出时将其删除)。然后在现有的点击、双击等处理程序中,只需检查字典中有多少指针并调用适当的处理程序