今天有个项目中需要在空白地方点击10次弹出新的页面,根据官方介绍,里面的NumberOfTapsRequired我设置了10,但是就是没反应,后来只能另寻它法。既然1次2次可以,那就直接后台代码里面实现,实现如下:
xaml文件添加:
<Label Text="xxx信息" TextColor="White" FontSize="78" Margin="10,150,10,50">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
</Label.GestureRecognizers>
</Label>
对应cs文件添加如下:
#region 多次点击相关
private DateTime? LastTap = null;
private byte NumberOfTaps = 0;
private const int NumberOfTapsRequired = 10;
private const int ToleranceInMs = 500;
#endregion
private async void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
if (LastTap == null || (DateTime.Now - LastTap.Value).TotalMilliseconds < ToleranceInMs)
{
if (NumberOfTaps == (NumberOfTapsRequired - 1))
{
//执行自己的逻辑
NumberOfTaps = 0;
LastTap = null;
return;
}
else
{
NumberOfTaps++;
LastTap = DateTime.Now;
}
}
else
{
NumberOfTaps = 1;
LastTap = DateTime.Now;
}
}