Почему значение раскадровки не получится от ресурса или привязки?

StackOverflow https://stackoverflow.com/questions/3415094

Вопрос

У меня есть строительство ниже, и это работает:

 <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 Документация, но в основном это означает, что вы не можете использовать привязку, потому что свойства в замороженном объекте (то есть анимация) не могут измениться.

Чтобы обойти это ограничение, вам нужно будет делать некоторые или все работы в коде.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top