public void addBalloonNotice(Notice.NoticeBalloon balloon) { panelBalloon.Children.Add(balloon); balloon.Margin = new Thickness(250, 0, -250, 0); var ani = new ThicknessAnimationUsingKeyFrames(); ani.KeyFrames.Add(new EasingThicknessKeyFrame(new Thickness(250, 0, -250, 0), TimeSpan.FromSeconds(0)) { EasingFunction = new SineEase() {EasingMode = EasingMode.EaseInOut } }); ani.KeyFrames.Add(new EasingThicknessKeyFrame(new Thickness(0), TimeSpan.FromSeconds(0.5)) { EasingFunction = new SineEase() { EasingMode = EasingMode.EaseInOut } }); ani.KeyFrames.Add(new EasingThicknessKeyFrame(new Thickness(0), TimeSpan.FromSeconds(2.5)) { EasingFunction = new SineEase() { EasingMode = EasingMode.EaseInOut } }); ani.KeyFrames.Add(new EasingThicknessKeyFrame(new Thickness(250, 0, -250, 0), TimeSpan.FromSeconds(3)) { EasingFunction = new SineEase() { EasingMode = EasingMode.EaseInOut } }); ani.Completed += (obj, e)=> { panelBalloon.Children.Remove(balloon); }; balloon.BeginAnimation(MarginProperty, ani); }