1. 程式人生 > >WPF實現左右移動(晃動)動畫效果

WPF實現左右移動(晃動)動畫效果

做的 log img RKE link args tty rgba style

原文:WPF實現左右移動(晃動)動畫效果

實現控件或布局的左右移動(晃動)主要用到DoubleAnimation以及Storyboard
布局代碼為:

<Canvas>
        <Grid Width="200" Height="100" Background="MediumAquamarine" Name="GroupboxArea" Canvas.Left="100" Canvas.Top="200"/>
        <Button Content="Button"
Height="25" Width="78" Click="Button_Click"/> </Canvas>

後臺代碼為:

 private void Button_Click(object sender, RoutedEventArgs e)
        {
            DoubleAnimation DAnimation = new DoubleAnimation();
            DAnimation.From = 100;//起點
            DAnimation.To = 280;//終點
            DAnimation.
Duration = new Duration(TimeSpan.FromSeconds(0.5));//時間 Storyboard.SetTarget(DAnimation, GroupboxArea); Storyboard.SetTargetProperty(DAnimation, new PropertyPath(Canvas.LeftProperty)); Storyboard story = new Storyboard(); story.Completed += new EventHandler(story_Completed);//完成後要做的事
//story.RepeatBehavior = RepeatBehavior.Forever;//無限次循環,需要的自己加上 story.Children.Add(DAnimation); story.Begin(); } void story_Completed(object sender, EventArgs e) { DoubleAnimation DAnimation = new DoubleAnimation(); DAnimation.From = 280;//起點 DAnimation.To = 100;//終點 DAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.5));//時間 Storyboard.SetTarget(DAnimation, GroupboxArea); Storyboard.SetTargetProperty(DAnimation, new PropertyPath(Canvas.LeftProperty)); Storyboard story = new Storyboard(); story.Completed += new EventHandler(storyCompleted);//完成後要做的事 //story.RepeatBehavior = RepeatBehavior.Forever;//無限次循環,需要的自己加上 story.Children.Add(DAnimation); story.Begin(); } void storyCompleted(object sender, EventArgs e) { DoubleAnimation DAnimation = new DoubleAnimation(); DAnimation.From = 100;//起點 DAnimation.To = 200;//終點 DAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.5));//時間 Storyboard.SetTarget(DAnimation, GroupboxArea); Storyboard.SetTargetProperty(DAnimation, new PropertyPath(Canvas.LeftProperty)); Storyboard story = new Storyboard(); //story.Completed += new EventHandler(storyCompleted);//完成後要做的事 //story.RepeatBehavior = RepeatBehavior.Forever;//無限次循環,需要的自己加上 story.Children.Add(DAnimation); story.Begin(); }

WPF實現左右移動(晃動)動畫效果