Почему значение раскадровки не получится от ресурса или привязки?
-
26-09-2019 - |
Вопрос
У меня есть строительство ниже, и это работает:
<Storyboard x:Key="GrowOnStart">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Canvas.Left)" Storyboard.TargetName="window">
<EasingDoubleKeyFrame KeyTime="0" Value="1024"/>
Почему это не работает, если я попробую что-то вроде этого:
<EasingDoubleKeyFrame KeyTime="0" Value="{DynamicResource StartingPositionLeft}"/>
И да, я определил ресурс перед раскадровкой. И заявление, как следующий, тоже не будет работать:
<EasingDoubleKeyFrame KeyTime="0" Value="{Binding StartingPositionLeft}"/>
И да, это публичная недвижимость по коду позади и this.dataContext. установлен в это.
Решение
Это потому, что анимации являются морязными объектами. Есть больше информации в MSDN Документация, но в основном это означает, что вы не можете использовать привязку, потому что свойства в замороженном объекте (то есть анимация) не могут измениться.
Чтобы обойти это ограничение, вам нужно будет делать некоторые или все работы в коде.
Не связан с StackOverflow