Как зарегистрировать прикосновения, пока другой палец удерживается - PullRequest
2 голосов
/ 19 марта 2011

На устройстве WP7 у меня есть холст. Когда пользователь касается любого места на холсте, изображение отображается в этой позиции.

Я хочу добавить функцию, при которой, если пользователь касается и удерживает экран одним пальцем, а затем касается экрана в другом месте другим пальцем, также отображается изображение. В общем, я хочу, чтобы можно было захватить и ответить на второе касание самым простым способом. Есть идеи?

Ответы [ 3 ]

3 голосов
/ 19 марта 2011

Вы смотрели на GestureService? События Pinch * позволяют обрабатывать два одновременных прикосновения.

См. пример .

1 голос
/ 19 марта 2011

Поскольку вы явно находитесь в Silverlight, в этом посте показано, как реализовать мультитач для себя - http://mine.tuxfamily.org/?p=111

Регистрация для касаний

 Touch.FrameReported += new TouchFrameEventHandler(Touch_FrameReported);

Затем обработайте эти штрихи:

 void Touch_FrameReported(object sender, TouchFrameEventArgs e)
 {
        // if there are more than one finger on screen
        if (e.GetTouchPoints(myCanvas).Count == 2)
        {
            TouchPointCollection tpc = e.GetTouchPoints(myCanvas);
            // use tpc[0].Position
            // use tpc[1].Position
        }
 }

В качестве альтернативы, если вы хотите использовать готовые жесты, рассмотрите возможность использования последней версии Silverlight Toolkit. Информацию см. В этом блоге - http://3water.wordpress.com/2011/03/09/wp7-gesture-recognition-2/

1 голос
/ 19 марта 2011

вам нужен только GestureListener, который находится в пространстве имен Microsoft.Phone.Controls, который может обрабатывать пару жестов, таких как

  • Flick
  • Щепотка
  • Перетащите
  • Размах
  • и т.д..

Вы можете использовать это так

var gestureListener = GestureService.GetGestureListener(myCanvas);

//registering the Events
gestureListener.PinchStarted += new EventHandler<PinchStartedGestureEventArgs>(PinchStartedHandler);
gestureListener.PinchDelta += new EventHandler<PinchGestureEventArgs>(PinchDeltaHandler);
gestureListener.PinchCompleted += new EventHandler<PinchGestureEventArgs>(PinchCompletedHandler);

В оценочных Hanler-Methods вы выполняете преобразования поворота и масштабирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...