c# - gesturerecognizers - Evento Double Tap de Windows 8/XAML siempre precedido por Tap
xamarin label tap event (3)
Es posible que desee considerar dejar que haga ambas cosas. Piénsalo como hacer doble clic en una carpeta en Windows. Los usuarios estarán acostumbrados a que algo ocurra en el primer clic (destacando la carpeta) y esperarán que hagan doble clic para resaltar y luego navegar.
En general, parece un problema de diseño, no técnico.
Tengo un botón en una aplicación. Quiero que haga cosas diferentes dependiendo de si toco (pause una animación) o toco dos veces (reinicio de la animación)
sin embargo, cuando toco dos veces, parece disparar el evento tap primero y luego el doble toque en rápida sucesión. ¿Hay alguna forma de evitar esto? ¿Es este un problema conocido o estoy cometiendo un error de novato?
Editar: para aquellos que preguntan, estoy usando los eventos Tapped
y DoubleTapped
.
Dale un poco de pausa a una sola pestaña. Si hay una doble pestaña, se elimina el evento de pestaña individual
bool singleTap;
private async void control_Tapped_1(object sender, TappedRoutedEventArgs e)
{
this.singleTap = true;
await Task.Delay(200);
if (this.singleTap)
{
// Single tab Method .
}
}
private void control_DoubleTapped_1(object sender, DoubleTappedRoutedEventArgs e)
{
this.singleTap = false;
// Double tab Method
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern uint GetDoubleClickTime();
bool _singleTapped = false;
//Tapped event handler
private async void control_Tapped(object sender, TappedRoutedEventArgs e)
{
_singleTapped = true;
//var x = GetDoubleClickTime();
//GetDoubleClickTime() gets the maximum number of milliseconds that can elapse between a first click and a second click
await Task.Delay(TimeSpan.FromMilliseconds(GetDoubleClickTime()));
if (!_singleTapped)
{ return; }
//SingleTapped code
}
//DoubleTapped event handler
private async void control_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
{
_singleTapped = false;
//DoubleTapped code
}