Сохранение значения Angle (WPF, C#)
В wpf создал фигуру Tank. С помощью анимации изменяю значение углов , с помощью клавиши А, влево на 90 градусов. но нужно как-то сделать так, чтобы значения углов сохранялись, поскольку сейчас, если нажать А ещё раз, то анимация повторяется с начальной точки. Не понимаю как сделать это. Если есть более простой способ изменения угла, был бы рад узнать о нем
if (e.Key == Key.A)
{
Canvas.SetLeft(Tank, Canvas.GetLeft(Tank) - 5);
//var rotateTransform = new RotateTransform();
Tank.RenderTransform = rotateTransform;
Tank.RenderTransformOrigin = new Point(0.5, 0.5);
rotateTransform.BeginAnimation(
RotateTransform.AngleProperty,
new DoubleAnimation
{
By = -90,
Duration = TimeSpan.FromSeconds(0.5),
//RepeatBehavior = RepeatBehavior.Forever
});
}
}
Ответы (1 шт):
Автор решения: jimac
→ Ссылка
Решил, но не знаю насколько это правильно. Создал новый экземпляр класса RotateTransform. Вынес за "нажатие на кнопку" свойство и при нажатии передаю значение этому свойству. Проблема решена.
var rotateTransform = new RotateTransform();
Tank.RenderTransform = rotateTransform;
//Tank.RenderTransformOrigin = new Point(0.5, 0.5);
if (e.Key == Key.D)
{
Canvas.SetLeft(Tank, Canvas.GetLeft(Actor) + 5);
rotateTransform.Angle = +90;
}