Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Timeline


Автор: DenWPF 3.12.2009, 17:13
У меня есть Timeline.
как мне его запуститьв коде?


Автор: Bladerender 5.12.2009, 07:13
У сториборда есть методы Begin(); и Stop();
Код

storyBoard1.Begin();
storyBoard1.Stop();

Если у вас есть какой-то динамически созданный контролл, и нужно через его объект вызвать сториборд, то это делаеться через ресурсы
Код

StoryBoard _rInProgress = (Storyboard)image2.TryFindResource("storyBoard1");
_rInProgress.Begin();
_rInProgress.Stop();


Еще заметил такую фишку (может я конечно тогда недоразобрался, ибо спешил) что  TryFindResource() возвращает копию или копию ссылки этого сториборда, и потому если у вас допустим 

Код

StoryBoard _rInProgress = (Storyboard)image2.TryFindResource("storyBoard1");
_rInProgress.Begin(); //картинка начала вращаться 

StoryBoard _rInProgress = (Storyboard)image2.TryFindResource("storyBoard1");
_rInProgress.Stop(); //картинка не остановиться, потому что вы по факту ост
анавливаете совсем другую копию сториборда.

 С одной стороны странно, с другой я хз. Т.к. TryFindResource() используется не только для поиска сторибордов а для всех ресурсов в целом, то такой подход может быть оправдан.
Короче что бы его остановить потом, нужно его просто запомнить и другой раз уже TryFindResource для этого сториборда этого елемента не делать.



Автор: DenWPF 5.12.2009, 10:33
спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)