Я пытаюсь создать приложение карт, такое как WP7 Maps. Я знаю, что в WPF управлять жестами холста на карте с помощью MatrixTransform просто, но версия MatrixTransform для WP7 менее функциональна.
Есть ли шаблоны как управлять всеми событиями ManipulationDelta для:
Увеличение и уменьшение. Теперь я делаю это так:
var maxScale = Math.Max(
args.DeltaManipulation.Scale.X,
args.DeltaManipulation.Scale.Y);
if (Math.Abs(maxScale - 0) > 0.0001 &&
((maxScale < 1 && _scale.ScaleX > MIN_SCALE) ||
(maxScale > 1 && _scale.ScaleX < MAX_SCALE)))
{
_scale.ScaleX *= maxScale;
_scale.ScaleY *= maxScale;
}
где _scale = new ScaleTransform (); и это должно быть улучшено, чтобы управлять положением холста
Переместить карту пальцем. По первому шагу это выглядит так:
_translation.X += args.DeltaManipulation.Translation.X
* _scale.ScaleX;
_translation.Y += args.DeltaManipulation.Translation.Y
* _scale.ScaleX;
где _translation = new TranslateTransform ();
- Создайте динамику после Pan, Pinch и Stretch
текущей реализации нет, но я смотрю на ManipulationCompleted, где добавим немного кода для продолжения жестов более естественным способом.
Я ищу типичное решение для управления этими функциями, возможно, я ошибаюсь и не через ManipulationDelta