Tengo el siguiente código:

public MainPage()
{
    this.InitializeComponent();
    this.ManipulationStarting += MainPage_ManipulationStarting;
    this.ManipulationStarted += MainPage_ManipulationStarted;
    this.ManipulationInertiaStarting += MainPage_ManipulationInertiaStarting;
    this.ManipulationDelta += MainPage_ManipulationDelta;
    this.ManipulationCompleted += MainPage_ManipulationCompleted;
}
void MainPage_ManipulationStarting(object sender, ManipulationStartingRoutedEventArgs e)
{
    Debug.WriteLine("MainPage_ManipulationStarting");
}
void MainPage_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
    Debug.WriteLine("MainPage_ManipulationStarted");
}
void MainPage_ManipulationInertiaStarting(object sender, ManipulationInertiaStartingRoutedEventArgs e)
{
    Debug.WriteLine("MainPage_ManipulationInertiaStarting");
}
void MainPage_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
    Debug.WriteLine("MainPage_ManipulationDelta");
}
void MainPage_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
    Debug.WriteLine("MainPage_ManipulationCompleted");
}

Pero no tengo idea sobre cómo usar los eventos de Manipulación. Puede alguien describir cómo manejar los gestos de deslizar el dedo hacia arriba, abajo, izquierda y derecha?

No he trabajado con WinRT gestos, pero un vistazo rápido a la MSDN yo apostaría a que se podía acceder a las distintas propiedades de los argumentos durante la Delta (o otros eventos. Por ejemplo ManipulationDeltaRoutedEventArgs.Velocities tiene un conjunto de datos relativos a la dirección/angular/escala entradas del usuario. No puedo decir si eso es “el uno”, usted debe mirar, pero tal vez voy a dar un inicio.

OriginalEl autor Elmo | 2012-09-28

3 Comentarios

  1. 22

    Eventos de manipulación de proporcionar la traducción de los valores. La manipulación de Delta va a disparar de forma continua hasta su manipulación completado junto con la inercia. En este caso comprobar si el movimiento es inercial, (un ataque normal no debería ser considerado como deslizar el dedo) y detectar la diferencia entre la inicial y la posición actual.

    Una vez que se alcanza el umbral, el fuego pase el dedo hacia arriba/abajo/izquierda/derecha evento. Y detener la manipulación de inmediato para evitar disparar en el mismo evento una y otra vez.

    Código siguiente le ayudará,

        private Point initialpoint;
    
        private void Grid_ManipulationStarted_1(object sender, ManipulationStartedRoutedEventArgs e)
        {
            initialpoint = e.Position;
        }
    
        private void Grid_ManipulationDelta_1(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if (e.IsInertial)
            {
                Point currentpoint = e.Position;
                if (currentpoint.X - initialpoint.X >= 500)//500 is the threshold value, where you want to trigger the swipe right event
                {
                    System.Diagnostics.Debug.WriteLine("Swipe Right");
                    e.Complete();
                }
            }
        }
    No hay necesidad para múltiples eventos. Sólo uso e.Cumulative.Translation.X.
    Me estoy encontrando que el correo.IsInertial es siempre volver falso – ¿alguna idea?

    OriginalEl autor Jawahar

  2. 4

    He probado la respuesta por XAML amante, pero no fue preciso para mí (IsIntertial siempre volvía falso para mí). He implementado algo diferente (yo le respondí a un post anterior de un tema relacionado aquí Manejo Pase Guesture en Windows 8 Cuadrícula) para cualquier persona que quería probar algo diferente.

    OriginalEl autor drcoderz

Dejar respuesta

Please enter your comment!
Please enter your name here