Почему значение раскадровки не может быть получено из ресурса или привязки? - PullRequest
1 голос
/ 05 августа 2010

У меня есть конструкция ниже, и она работает:

 <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 , установленное в this .

1 Ответ

2 голосов
/ 05 августа 2010

Это потому, что анимации - это объекты, которые можно заморозить. В документации MSDN содержится больше информации, но в основном это означает, что вы не можете использовать привязку, потому что свойства в замороженном объекте (т.е. анимация) не могут измениться.

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

...