Мультитач-жесты в Silverlight 4 и Windows Phone 7 - PullRequest
3 голосов
/ 24 марта 2011

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

Справочная информация:

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

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

Лучший анализ предоставленных Microsoft опций, который я нашелот Джефф Просиз (детали 1 , 2 , 3 и 4 ) и CharlesПетцольд .

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

  • 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 на самом деле не вариант.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2012

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

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

0 голосов
/ 06 апреля 2011

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

http://lighttouch.codeplex.com/

...