2009-10-05 4 views
1

Я разрабатываю приложение для Microsoft Surface и Im, пытаясь максимально использовать библиотеки, которые там есть, функциональность Im after, если можно щелкнуть элемент пользовательского интерфейса.WPF Flick вдоль пути (поверхность)

Элемент управления ScatterView делает это простым, но я хотел бы ограничить элемент пользовательского интерфейса только тем, чтобы его можно было перемещать по заданному пути. Здесь у меня проблемы.

Так что мои вопросы:

1) Вы можете ограничить ScatterViewItem быть щелкнул только по пути?

2) Если нет, как бы вы применили жест flick, чтобы щелкнуть элемент пользовательского интерфейса по заданному пути?

Спасибо!

Марк

ответ

3

1) Не то, что я знаю, и это, вероятно, не самый лучший способ приблизиться к нему.

2) Предполагая, что у вас есть объект, который вы хотите щелкнуть, и путь во время разработки, я ранее реализовал перетаскивание и перемещение по пути, создав анимацию временной шкалы, которая представляет движение по всему пути. Во время выполнения я захватываю контакты на этом объекте, передаю их в Affine2DManipulationProcessor и ищу анимацию на основе событий манипуляции.

Так что в моем случае я создавал ящик. Когда пользователь коснулся ящика, я запускаю анимацию и приостанавливаю ее немедленно. Если пользователь перетаскивает его, я ищу анимацию соответствующей суммы вперед, исходя из того, насколько процессор обработки говорит мне, что они переместились.

Чтобы получить поведение от щелчка, вы просто передадите манипуляции на Affine2DInertiaProcessor и продолжите обработку событий дельты.

Все это работает на удивление хорошо.

+0

Спасибо, Бен, это хороший ответ, я полагаю, до тех пор, пока вы его правильно вычислите, класс анимации будет работать нормально. Я не решался использовать его из-за неестественного чувства, которое он мог бы дать пользователю ... – Mark

Смежные вопросы