1

我将如何设置一个似乎没有与之关联的动画类型的属性?具体来说,我想在激活VerticalAlignmentan 时更改控件。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>

这会产生此异常:

无法使用“System.Windows.Media.Animation.ObjectAnimationUsingKeyFrames”为“System.Windows.Controls.Border”上的“VerticalAlignment”属性设置动画。有关详细信息,请参阅内部异常。

内部异常:

应用于“VerticalAlignment”属性的动画计算出“Top”的当前值,该值不是该属性的有效值。

我不确定我是否对VerticalAlignment类型进行了不正确的限定,或者这是否只是设置非典型动画属性的错误方法。

4

1 回答 1

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>
于 2012-10-15T18:24:31.007 回答