Silverlight, анимация масштабирования DeepZoom

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

Спасибо

3 ответа

Решение

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

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

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

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

Другие вопросы по тегам