2010-01-21 4 views
1

Когда я установил ViewportWidth изображения Deepzoom в Silverlight, уровень масштабирования изменяется очень быстро. Есть ли способ, которым я могу установить время, которое должна сделать анимация масштабирования?Silverlight, анимация масштабирования DeepZoom

Благодаря

ответ

1

Единственный способ сделать это: установить UseSprings на false и оживить значение ViewportWidth. Это также заставит вас анимировать ViewportOrigin, а также при выполнении операций панорамирования, если вы хотите сохранить «пружинную» анимацию панорамирования.

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

+0

Производительность не кажется плохим. Спасибо, похоже, что это будет лучшее решение – Marklar

0

Попробуйте использовать MultiScaleImage.UseSprings = истина и метод ZoomAboutLogicalPoint().

+0

Я не могу установить время, которое анимация зума берет с помощью этого метода, хотя – Marklar

0

Хотя вы не можете установить синхронизацию напрямую, каждая «Весна» занимает ровно 1,5 секунды. Итак, если бы вы захотели, вы могли бы оставить пружины, а затем рассчитать разницу между текущей видовой пропускной способностью, шириной видового экрана, к которой вы хотите перейти, и попытаться провести тактику времени. Это, как говорится, может показаться неудобным, поэтому сначала вы должны его протестировать.