Событие касания и удержания в ScatterViewItem - PullRequest
1 голос
/ 10 сентября 2010

Я не могу найти информацию о том, как получать пользовательские жесты на ScatterViewItems.Я хочу, чтобы "Tap-And-Hold" вызывал функцию в классе позади моего шаблона.

Ответы [ 2 ]

0 голосов
/ 16 января 2014
TouchExtensions.AddTapGestureHandler(your_object_that_willdetect, your_handler_function);

немного поздно, но без вреда =)

0 голосов
/ 14 декабря 2011

Следующая ссылка о том, как получать сообщения Touch Gestures Win32 с помощью «WndProc», но образец находится на C ++

http://msdn.microsoft.com/en-us/library/windows/desktop/dd371578(v=vs.85).aspx

Другим методом является реализация жеста Tap-Hold с использованием простого «DispatcherTimer», который должен запускаться при касании «ScatterViewItem» в обработчике события «PreviewTouchDown» элемента, к которому требуется применить жест.

void OnPreviewTouchDown(object sender, System.Windows.Input.TouchEventArgs e)
{
if(e.Source.GetHashCode() == YourUIElement.GetHashCode() )
{ 
MyTimer.Start();

//You need to capture the touch before the ScatterViewItem handles its own touch which will    
//block you from receiving the touch up event 
YourUIElement.CaptureTouch(e.TouchDevice);
e.Handled = true;

}
}

void OnPreviewTouchUp(object sender, System.Windows.Input.TouchEventArgs e)
{
YourUIElement.ReleaseAllTouches();
}


private void OnTimerTick(object sender, EventArgs e)
{
// To call whatever function or do whatever action you need.
IsTapHoldGestureOkay = true;
DoStuff();
MyTimer.Stop();
}
...