我如何设置一个似乎没有与之关联的动画类型的属性?具体来说,只要激活VerticalAlignment
,我就想更改控件的EventTrigger
。这是我目前的状态/尝试失败:
<EventTrigger RoutedEvent="my:MenuHelper.MenuIsReversed">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="VerticalAlignment" Storyboard.TargetName="Bouncy_Bar">
<DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Top"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
产生此例外:
无法为a上的“VerticalAlignment”属性设置动画 'System.Windows.Controls.Border'使用了 'System.Windows.Media.Animation.ObjectAnimationUsingKeyFrames'。对于 细节见内部异常。
内部异常:
应用于“VerticalAlignment”属性的动画计算 当前值'Top',它不是该属性的有效值。
我不确定我是否正确地对VerticalAlignment
类型进行了限定,或者这是否是设置非典型动画属性的错误方法。
答案 0 :(得分:2)
对不起,快速回答我自己的问题。我发现我没有布置XAML
以足够好地指定目标类型。这是工作结果:
<EventTrigger RoutedEvent="pill:PillMenuHelper.MenuIsReversed">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="Bouncy_Bar" Storyboard.TargetProperty="RenderTransform.Children[1].ScaleY" To="-1" Duration="0:0:.002"/>
<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="VerticalAlignment" Storyboard.TargetName="Bouncy_Bar">
<DiscreteObjectKeyFrame KeyTime="0:0:0">
<DiscreteObjectKeyFrame.Value>
<VerticalAlignment>Top</VerticalAlignment>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>