2012-03-17 4 views
0

私は、このXAMLを持っている:なぜCanvas.SetTopアニメーションが正しく動作しないのですか?

<Canvas Width="75" Height="75"> 
     <Button x:Name="button" Background="Olive" Canvas.Left="0" Canvas.Top="0" Width="75" Height="75" Click="button_Click"/> 
    </Canvas> 

そして背後に、このコード:

Private Sub button_Click(ByVal sender as Object, ByVal e as System.Windows.RoutedEventArgs) 
     Canvas.SetTop(sender, -75) 

     Dim sb1 As New Storyboard 
     Dim da1 As New DoubleAnimationUsingKeyFrames 
     da1.BeginTime = TimeSpan.FromSeconds(0) 
     Storyboard.SetTargetName(da1, CType(sender, Button).Name) 
     Storyboard.SetTargetProperty(da1, New PropertyPath(Canvas.TopProperty)) 

     Dim t1 As Double = Canvas.GetTop(sender) 
     da1.KeyFrames.Add(New SplineDoubleKeyFrame(t1 + 75, TimeSpan.FromSeconds(0.2))) 
     sb1.Children.Add(da1) 

     BeginStoryboard(sb1)   
    End Sub 

私はボタンを最初にクリックすると、それが適切に75によって上昇し、バック0にアニメーション化しますが、私もう一度ボタンをクリックすると、75だけアニメートされます。なぜCanvas.SetTopの行をスキップして、アニメーション部分にまっすぐ行くのですか?そしてこれを修正する方法は? Canvas.SetTop

(sender as UIElement).BeginAnimation(Canvas.TopProperty, null); 

+0

今すぐ使用できますか? – Klaus78

+0

@ Klaus78うん、ありがとう! – Cobold

答えて

関連する問題