Жесты мультитач в Silverlight 4 и Windows Phone 7

Вопрос: Каков наилучший кроссплатформенный подход мультитач для Silverlight?

Задний план:

Я занимался разработкой больших приложений SL4 и теперь начал переносить их на WP7.

Само портирование было фантастическим - практически никаких изменений между платформами не требовалось. Но теперь с WP7 возникает проблема мультитач. С растущим недоумением я обнаружил, что сейчас существует по крайней мере 4 различных варианта реализации мультитач в Silverlight, ни один из них не идеален, и ни один не идеально кроссплатформенный.

Наилучший анализ предлагаемых Microsoft вариантов, которые я нашел, взят из Jeff Prosise (части 1, 2, 3 и 4) и Чарльз Петцольд.

Здорово! GestureService / GestureListener в Silverlight Toolkit выглядит идеально. Как раз то, что мне нужно. Итак, я начинаю внедрять это в свое приложение и сталкиваюсь со следующей неприятной последовательностью.

  • GestureService / GestureListener есть только в WP7 Silverlight Toolkit, но не в Silverlight Toolkit для SL4.

  • В ПОРЯДКЕ. Загрузите исходный код WP7 Toolkit и попытайтесь создать мою собственную версию
    GestureService / GestureListener для SL4. Несмотря на то, что Touch.FrameReported доступен в SL4, другой ключевой класс Microsoft.Xna.Framework.Input.Touch недоступен. Тупик.

  • Начните искать альтернативные сенсорные библиотеки с открытым исходным кодом. Потеряйте много часов.

  • Расчет на www.codeplex.com/multitouch. После множества потраченных впустую часов вы обнаружите, что в настоящее время поддерживается только портретный режим, а не альбомный. Тупик.

Итак, есть ли обходной путь, чтобы заставить GestureService / GestureListener работать в SL4? Если нет, то может ли кто-нибудь догадаться, когда / будет ли он доступен в наборе инструментов SL4? Ждать SL5 - не вариант.


person Jay Borseth    schedule 24.03.2011    source источник


Ответы (2)


Нет готового решения. Однако мы создали сенсорную библиотеку с открытым исходным кодом, чтобы обеспечить четность и связь с отсутствующими событиями на стороне Silverlight. Посмотри:

http://lighttouch.codeplex.com/

person Jeremy Likness    schedule 06.04.2011

У меня была такая же проблема год назад. К сожалению, мне пришлось реализовать собственное решение для SL, основанное на Touch.FrameReported и TouchFrameEventArgs.GetTouchPoints. Я знаю, что это немного низкоуровнево, но для меня это был единственный надежный вариант.

Вот краткое руководство Тима Хойера: http://timheuer.com/blog/archive/2009/07/30/silverlight-3-multi-touch-introduction-fundamentals-basics.aspx

person Jevgeni Tsaikin    schedule 15.04.2012