Swipe WPF – Wykrywanie przeciągnięcia myszą/palcem w prawo lub lewo

By | 18 maja 2015

Kod wykrywania Swipe Left/Right w C# pisze się stosunkowo prosto, ponieważ wystarczy na dobrą sprawę utworzyć dwa Eventy: „MouseDown” i „MouseUp” w pierwszym z nich wystarczy zapisać pozycje myszy po naciśnięciu lewego przycisku myszy, a w drugim (czyli podczas puszczania lewego przycisku myszy) porównujemy wartości aktualnej pozycji myszy. Jeżeli są odpowiednio oddalone w lewo lub w prawo, to wykonywany jest odpowiedni kod.

Prawda że proste? Poniżej kod:


private Point TouchStart;

private void myBook_MouseDown(object sender, MouseButtonEventArgs e)
{
    TouchStart = e.GetPosition(this);
}

private void myBook_MouseUp(object sender, MouseButtonEventArgs e)
{
    var Touch = e.GetPosition(this);

    // Pomocne przy ustaleniu jaki ma być próg błędu
    Console.WriteLine("TouchStart " + TouchStart.X + "." + TouchStart.Y);
    Console.WriteLine("TouchStart " + Touch.X + "." + Touch.Y);
    
    //Swipe Left to Right
    if (TouchStart != null && Touch.X > (TouchStart.X + 20)) // + 20 stanowi próg błędu
    {
        // Tutaj dodaj kod, który ma się wykonać po przeciągnięciu palcem
    }

    //Swipe Right to Left
    if (TouchStart != null && Touch.X < (TouchStart.X - 20)) // + 20 stanowi próg błędu
    {
        // Tutaj dodaj kod, który ma się wykonać po przeciągnięciu palcem
    }
}

Powyższy kod (po przeróbkach) równie dobrze sprawdzi się w Androidzie czy też w innym języku programowania niż Java czy C#, ponieważ to jest bardziej algorytm, niż wykorzystanie API konkretnej platformy.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *