WPF Flick вдоль дорожки (Поверхность) - PullRequest
1 голос
/ 05 октября 2009

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

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

Итак, мои вопросы:

1) Можно ли ограничить ScatterViewItem только перелистыванием по пути?

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

Спасибо!

Mark

1 Ответ

3 голосов
/ 05 октября 2009

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

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

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

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

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

...