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

Благодарность

1
Marklar 21 Янв 2010 в 03:47

3 ответа

Лучший ответ

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

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

1
AnthonyWJones 21 Янв 2010 в 14:09
Производительность кажется неплохой. Спасибо, похоже, это будет лучшее решение
 – 
Marklar
22 Янв 2010 в 01:22

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

0
Michael S. Scherotter 21 Янв 2010 в 10:54
Я не могу установить время, которое занимает анимация масштабирования с помощью этого метода, хотя
 – 
Marklar
22 Янв 2010 в 01:21

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

0
Craig Huber 26 Фев 2010 в 19:24