kiri11 / DrawTogether

A drawing game for touch-screen devices
Kiri11.ru
0 stars 0 forks source link

Не работает multitouch #6

Open kiri11 opened 10 years ago

kiri11 commented 10 years ago

Реализовать возможность одновременного рисования несколькими участниками.

kiri11 commented 10 years ago

В .Net обработка нажатий работает следующим образом:

При первом нажатии возникает событие TochDown и всплывает до корневого элемента. Также вызывается событие MouseDown, эмулирующее мышь для поддержки обратной совместимости. При втором и последующих нажатиях событие MouseDown не вызывается.

Точно также для событий TouchMove/MouseMove и TouchUp/MouseUp.

Контрол InkCanvas реагирует только на события мыши, именно поэтому не получается использовать несколько InkCanvas одновременно.

Возможные пути решения проблемы:

  1. Ловить все события Touch и вызывать вручную такие же события для Mouse.
  2. Сделать Canvas и обрабатывать вручную события Touch или Pointer (Pointer поддерживает одновременно мышь и тач). Работает, но наивная реализация не очень быстрая.
  3. Переопределить обработчики событий Touch в InkCanvas (по умолчанию они пустые).
  4. Создать свой контрол (унаследовать от InkCanvas?) с нужным функционалом.
  5. Найти и подключить готовый контрол с нужным функционалом.