Ограничения на ширину / высоту изображения в WP7 GestureListener - PullRequest
1 голос
/ 01 апреля 2011

Я добавил GestureListener к изображению, которое я пытаюсь увеличить, как этот ответ Переполнение стека здесь: Как увеличить и уменьшить изображения в WP7?

Проблема заключается в том, что изображение не перестает масштабироваться и покрывает другие элементы управления на странице. Это охватывает несколько важных кнопок на странице.

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

Моя цель: Сохраните изображение в строке сетки, к которой оно относится, чтобы не покрывать другие элементы управления. Предотвратить ширину / высоту изображения, чтобы получить маленький Предотвратить ширину / высоту слишком большой Предотвращение перетаскивания изображения с экрана.

Есть ли способ решить это? Ширина / Высота объекта Image не изменяются GestureListener, поэтому я не могу просто сделать

Image i = sender as Image;
if (i.Height == TOO_BIG)
return;
...

Ответы [ 3 ]

2 голосов
/ 07 апреля 2011

Я решил исправить это и заставить его отлично работать с кодом из следующего блога:

http://www.frenk.com/2011/03/windows-phone-7-correct-pinch-zoom-in-silverlight/

Это очень впечатляющий набор функций для Pinch / Zoom.Проблема с изображением, покрывающим другие элементы управления, была устранена путем добавления отсечения к сетке, которое подробно описано здесь:

http://www.codeproject.com/Articles/36495/Silverlight-ClipToBounds-Can-I-Clip-It-Yes-You-Can.aspx

2 голосов
/ 01 апреля 2011

В этом сообщении блога показано, как реализовать масштабирование Pinch / Zoom для изображения: http://alvaropeon.wordpress.com/2011/03/10/implementing-pinch-to-zoom-images-in-wp7/ Представленное решение заключается в ограничении исходного размера в 4 раза, но вы можете делать все, что захотите.Если вы хотите ограничить его родителем, просто получите ActualWidth и ActualHeight родительского элемента, используя их в качестве пределов.

1 голос
/ 01 апреля 2011

Я полагаю, что вы можете сделать это, ограничив transform.ScaleX и transform.ScaleY в приведенном ниже обработчике события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...