Удалить анимированный объект из приложения магазина 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);