Анимация Silverlight и данных с привязкой к данным (Маржа) - PullRequest
1 голос
/ 14 апреля 2010

У меня есть элемент Border со свойством Margin, связанным со свойством StartDate (DateTime) некоторого класса. При изменении свойства маржа также изменяется (с помощью конвертера).

Я бы хотел сделать изменения как можно более плавными. например, на стороне пользовательского интерфейса один час в классе данных равен 15 пикселям на экране, и когда я изменяю StartDate +/- один час, я могу видеть, что запас элемента прыгает на +/- 15 пикселей вправо / влево ... так как я могу оживить это?

Заранее спасибо!

Кстати - это мой первый вопрос здесь :)

1 Ответ

1 голос
/ 16 апреля 2010

К сожалению, вы не можете управлять полем с помощью анимации.Поля - это действительно объект «Толщина», и объекты, которые аниматор простых свойств почти не может выяснить самостоятельно, сами по себе.

Однако, как и сегодня, есть много способов переопределить это:*

  1. Перемещение позиции объекта вместо поля: Изменение анимации поля в Silverlight

  2. Создание нового класса, аналогичногокласс ThicknessAnimation в WPF и вызвать его в коде: http://blogs.msdn.com/blemmon/archive/2009/03/18/animating-margins-in-silverlight.aspx

  3. ... или мой предпочтительный способ: найти что-то еще для анимации.Вы можете манипулировать другим объектом, который перемещает другие ваши объекты.Вы можете очень легко анимировать ширину и высоту невидимого / прозрачного объекта.Если этот элемент является первым на панели стека, все элементы после него будут перемещены по мере изменения его размеров.Это может стать привередливым, но это действительно легко сделать.

Удачи!

...