WPF 애니메이션 효과를 없앨 수 없나요??

안녕하세요.

WPF를 이용해서 아이폰의 잠금해제 기능을 연습삼아 구현을 해보고 있는 중입니다.

캔버스안에 사각형이 일정 구간을 넘어가지 않으면 다시 처음으로 돌아가는 애니메이션을

구현했는데 애니메이션이 실행되어 사각형이 원래 위치로 돌아가면 이후부터는 사각형이 움직이지

않습니다.

아마도 애니메이션 이벤트 발생 후 일어나는 것 보면 이게 원인 같은데 애니메이션을 삭제할 순 없나요??

CS :

private void OnMouseMove(object sender, MouseEventArgs e)
{

        if (press1) 
        {
            textBox2.Text = (++move).ToString();
            targetPosition = e.GetPosition(MainCanvas);
           
            double dx = targetPosition.X - objectPosition.X;
            double dy = targetPosition.Y - objectPosition.Y;
        
            double distance = Math.Sqrt(dx * dx + dy * dy);

            if (distance > moveSpeed)
            {
                double angle = Math.Atan2(dy, dx);
                double moveX = moveSpeed * Math.Cos(angle);
                double moveY = moveSpeed * Math.Sin(angle);

                Canvas.SetLeft(MovingObject, targetPosition.X);
                Canvas.SetTop(MovingObject, 2);
               
            }
            else
            {
               
                Canvas.SetLeft(MovingObject, targetPosition.X);
                Canvas.SetTop(MovingObject, 2);
               
            }
        }
    }

    private void MovingObject_MouseDown(object sender, MouseButtonEventArgs e)
    {
        //MessageBox.Show("클랙!");
        press1 = true;
        textBox1.Text = (++clickDown).ToString();
        
    }

    private void MovingObject_MouseUp(object sender, MouseButtonEventArgs e)
    {
        press1 = false;
         textBox3.Text = (++clickUp).ToString();

        if (Canvas.GetLeft(MovingObject) < MainCanvas.Width - MovingObject.Width) 
        {
            DoubleAnimation animationX = new DoubleAnimation(Canvas.GetLeft(MovingObject), objectPosition.X, TimeSpan.FromSeconds(0.1));
            DoubleAnimation animationY = new DoubleAnimation(Canvas.GetTop(MovingObject), objectPosition.Y, TimeSpan.FromSeconds(0.1));

            MovingObject.BeginAnimation(Canvas.LeftProperty, animationX);
            MovingObject.BeginAnimation(Canvas.TopProperty, animationY);

         }
    }
2개의 좋아요

샘플코드 공유가능할까요??

1개의 좋아요