Как остановить раскадровку, но сохранить текущие значения в коде UWP? - PullRequest
0 голосов
/ 04 февраля 2019

В чем моя проблема?

Я хочу остановить анимацию раскадровки, но сохранить текущее значение анимированных свойств и разморозить эти свойства.

Что я пробовал?

Я пробовал storyboard.Pause(), но это сохранит анимированные свойства замороженными.(изменение значений не имеет никакого эффекта) Я хочу иметь возможность освободить все свойства из раскадровки.

storyboard.Stop() не работает, потому что либо устанавливает значение анимированных свойств для завершения, либо запуска анимации в зависимости отFillBehavior.Хотя свойства будут размораживаться.

Я пытался очистить storyboard.Childern, но выбрасывал исключение, если раскадровка не была полностью остановлена.

Я пытался создать новую раскадровку с продолжительностью 0 с такими же анимациями, это будетОстановите предыдущие анимации и раскадровку, которую он сам завершит в кратчайшие сроки, но вот проблемы

  • Я должен знать, какие анимации были добавлены в последнюю раскадровку (я уже решил это путем хранения объектов зависимостей с помощьюпуть свойства в списке)

  • Мне нужно получить текущее значение анимированных свойств из пути свойства.

Я застрял на последнем, потому что это не существует в UWP

string propertyPath = "(UIElement.Projection).(PlaneProjection.RotationY)";

// all animated properties are double
double value = (double)dependencyObject.GetValue(???);

GetValue требуется DependencyProperty, но яесть строка.


Примечание: я просто хочу решить мою реальную проблему (начало этого поста).

1 Ответ

0 голосов
/ 05 февраля 2019

Мне удалось решить эту проблему, используя следующую временную шкалу

new DoubleAnimation { By = 0, Duration = TimeSpan.Zero }

С этой временной шкалой мне не нужно знать значение свойств.новая раскадровка с теми же элементами и теми же путями свойств с длительностью 0 с этой временной шкалой остановит предыдущую раскадровку и сохранит их значения.новая раскадровка также мгновенно остановится и разморозит анимированные свойства.

...