WPF實現左右移動(晃動)動畫效果
阿新 • • 發佈:2018-10-22
做的 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實現左右移動(晃動)動畫效果