Удалить анимированный объект из приложения магазина windows canvas

Я делаю простую игру в C#. Я хочу добавить объект на холст, анимировать его и удалить после нажатия. Добавление объектов на холст и их анимация работает, но я не могу удалить их с этого холста, нажав. Я пишу это:

el.Tapped += (sender, args) =>
                         {
                             LayoutRoot.Children.Remove(el);
                         };

el - это эллипс, который будет анимирован.

Метод для анимации объекта:

private void MoveAnimation(Ellipse el, double x, double y, int time)
    {
        Duration duration = new Duration(TimeSpan.FromMilliseconds(time));

        // Create two DoubleAnimations and set their properties.
        DoubleAnimation myDoubleAnimation1 = new DoubleAnimation();
        DoubleAnimation myDoubleAnimation2 = new DoubleAnimation();

        myDoubleAnimation1.Duration = duration;
        myDoubleAnimation2.Duration = duration;

        Storyboard sb = new Storyboard();
        sb.Duration = duration;

        sb.Children.Add(myDoubleAnimation1);
        sb.Children.Add(myDoubleAnimation2);

        Storyboard.SetTarget(myDoubleAnimation1, el);
        Storyboard.SetTarget(myDoubleAnimation2, el);

        // Set the attached properties of Canvas.Left and Canvas.Top
        // to be the target properties of the two respective DoubleAnimations.
        Windows.UI.Xaml.Media.Animation.Storyboard.SetTargetProperty(myDoubleAnimation1, "(Canvas.Left)");
        Windows.UI.Xaml.Media.Animation.Storyboard.SetTargetProperty(myDoubleAnimation2, "(Canvas.Top)");
        myDoubleAnimation1.To = x;
        myDoubleAnimation2.To = y;

        // Make the Storyboard a resource.
        LayoutRoot.Resources.Add(_animationId++ + "", sb);
        // Begin the animation.
        sb.Begin();
    }

Событие касания не вызывается, когда объект находится в анимации. Если объект находится после анимации, работает событие касания. Как исправить? Спасибо.

редактировать: мой код, чтобы добавить объект на холст и анимировать его:

Ellipse el = new Ellipse();
        el.Width = 50;
        el.Height = 50;
        var ib = new ImageBrush
        {
            ImageSource =
              new BitmapImage(
                new Uri("ms-appx:///Images/fly.png")
                )
        };
        el.IsTapEnabled = true;
        el.Fill = new SolidColorBrush(Colors.Blue);

        el.Tapped += (sender, args) =>
                         {
                             LayoutRoot.Children.Remove(el);
                         };

        Canvas.SetLeft(el, 0);
        Canvas.SetTop(el, 0);
        LayoutRoot.Children.Add(el);

        MoveAnimation(el, LayoutRoot.ActualWidth-400, LayoutRoot.ActualHeight-400, 5000);

0 ответов

Другие вопросы по тегам