Silverlight, анимация масштабирования DeepZoom
Когда я устанавливаю ViewportWidth изображения Deepzoom в Silverlight, уровень масштабирования изменяется очень быстро. Есть ли способ установить время, которое должна занять анимация масштабирования?
Спасибо
3 ответа
Единственный способ сделать это - установить UseSprings
ложно и оживить значение ViewportWidth
сам. Это также заставит вас оживить ViewportOrigin
а также при выполнении операций панорамирования, если вы хотите сохранить "весеннюю" анимацию панорамирования.
Вам нужно будет проверить производительность этого. Вполне возможно, что MultiscaleImage может оптимизировать свои собственные анимации иначе, чем когда эти свойства анимируются внешне.
Попробуйте использовать MultiScaleImage.UseSprings = true и метод ZoomAboutLogicalPoint().
Хотя вы не можете установить время напрямую, каждая "пружина" занимает ровно 1,5 секунды. Итак, если вы хотите, вы можете оставить пружины включенными, а затем вычислить разницу между текущей шириной области просмотра и шириной области просмотра, к которой вы хотите перейти, и попытаться подобрать синхронизацию по времени таким образом. Тем не менее, это может выглядеть неловко, поэтому вам придется сначала проверить это.