2012-10-15 61 views
1

我將如何去設置一個屬性,似乎沒有與它關聯的動畫類型?具體來說,只要激活EventTrigger,我想更改控件的VerticalAlignment。這是我目前的狀態/失敗的嘗試:在事件觸發器中設置VerticalAlignment

<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.Controls.Border」的「VerticalAlignment」屬性.Windows.Media.Animation.ObjectAnimationUsingKeyFrames'。有關 的詳細信息,請參閱內部例外。

內部異常:

動畫(S)施加到所述「VerticalAlignment」屬性計算 「頂部」,這不是用於屬性的有效值的電流值。

我不確定我是不是合格的VerticalAlignment類型或如果這只是設置非典型動畫屬性的錯誤方法。

回答

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> 
相關問題