Если у меня есть раскадровка, определенный как статический ресурс, например:Установка Storyboard.Targetname на раскадровке определяется как статический ресурс
<Storyboard
x:Key="shakeAnimation"
>
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="RenderTransform.X"
RepeatBehavior="5x"
>
<EasingDoubleKeyFrame KeyTime="0:0:0.05" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="3"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.20" Value="-3"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.25" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
и хотел бы применить где-то я могу сделать
<MultiDataTrigger.EnterActions >
<BeginStoryboard>
<StaticResource
ResourceKey="shakeAnimation"/>
</BeginStoryboard>
</MultiDataTrigger.EnterActions>
и это работает, я думаю. Однако, если я хочу, чтобы Апи анимации к конкретному объекту, то это не работает
<MultiDataTrigger.EnterActions >
<BeginStoryboard>
<StaticResource Storyboard.TargetName="editWidget"
ResourceKey="shakeAnimation"/>
</BeginStoryboard>
</MultiDataTrigger.EnterActions>
как я получаю ошибку
Прилагаемое свойство «Имя_целевого_объект» может быть применено только к типам, которые получены из «DependencyObject».
Есть ли аккуратный способ хранения моих раскадровки в качестве статических ресурсов, и они применяют их к элементам, как хотелось бы?
Если это работает, купить себе пиво завтра :) Я просто думал, что я, возможно, придется написать пользовательский StoryBoard бегун. Спасибо за это – bradgonesurfing
Это отлично работает. У меня был еще один вопрос о SO недавно о добавлении охранников/условий в раскадровку. Я подозреваю, что могу использовать этот трюк, чтобы сделать это тоже – bradgonesurfing
Присоединенные свойства - это мощный способ расширения поведения элементов в WPF. Хотя они были формализованы как поведение Blend, в некоторых случаях проще просто сделать это по старой школе. Надеюсь, вы сможете применить эту технику, чтобы помочь вам решить еще несколько проблем! –