Dzięki wielkie, poczytałem trochę i zrobiłem coś takiego :)
Może komuś się przyda.
private initialPoint = new Point();
private void PhoneApplicationPage_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
initialPoint.X = e.ManipulationOrigin.X;
initialPoint.Y = e.ManipulationOrigin.Y;
}
private void PhoneApplicationPage_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
int X = int.Parse((e.ManipulationOrigin.X - initialPoint.X).ToString());
int Y = int.Parse((e.ManipulationOrigin.Y - initialPoint.Y).ToString());
int tempX = X;
int tempY = Y;
if(Y < 0)
{
tempY *= -1;
}
if(X < 0)
{
tempX *= -1;
}
// Sprawdzamy czy długość przeciągnięcia jest odpowiednia
if(tempX < 75 && tempY < 75)
{
return;
}
// Tutaj mamy przykładowy warunek sprawdzający jeden z możliwych kierunków
if(X < 0 && Y < 0) // left or up
{
if(X < Y)
{
LeftDrag();
}
if(Y < X)
{
UpDrag();
}
e.Complete(); // Kończymy "przeciąganie" - żeby nie było sytuacji, że pociągniemy w lewo, a potem w prawo i zaliczy oba
return;
}
}