У меня есть три холста, которые я использую в приложении для карточных игр, которое я создаю.Одним из них является основной холст, в котором два других являются дочерними холстами (один статический, а другой вращается):
![Canvas Layout](https://i.stack.imgur.com/cPkpn.jpg)
В этом примере приложения я хочу переместить RotatingEl впозиция на StaticEl:
![Start Point](https://i.stack.imgur.com/3r6I5.jpg)
Когда я нажимаю кнопку «Переместить», она работает как положено:
![End Point](https://i.stack.imgur.com/89xQh.jpg)
Теперь,Я хочу повернуть RotatingCanvas и по-прежнему перемещать RotatingEl в положение StaticEl И настроить вращение так, чтобы оно соответствовало углу StaticEl:
![Rotated Canvas](https://i.stack.imgur.com/OVH5S.jpg)
Когда я пытаюсь его переместитьнеправильное местоположение:
![End Location After Move](https://i.stack.imgur.com/xrYL3.jpg)
Вот мой код при нажатии кнопки перемещения:
GeneralTransform generalTransformStaticEl = StaticEl.TransformToVisual(MainCanvas);
Point pointstatic = generalTransformStaticEl.Transform(new Point());
GeneralTransform generalTransformRotEl = RotatingEl.TransformToVisual(MainCanvas);
Point pointrot = generalTransformRotEl.Transform(new Point());
double distancecalcX = pointstatic.X - pointrot.X;
double distancecalcY = pointstatic.Y - pointrot.Y;
DoubleAnimation ELMoveY = new DoubleAnimation();
ELMoveY.From = Canvas.GetTop(RotatingEl);
ELMoveY.To = Canvas.GetTop(RotatingEl)+(distancecalcY);
ELMoveY.Duration = new Duration(TimeSpan.FromSeconds(1.0));
DoubleAnimation ELMoveX = new DoubleAnimation();
ELMoveX.From = Canvas.GetLeft(RotatingEl);
ELMoveX.To = Canvas.GetLeft(RotatingEl)+(distancecalcX);
ELMoveX.Duration = new Duration(TimeSpan.FromSeconds(1.0));
RotatingEl.BeginAnimation(Canvas.LeftProperty, ELMoveX);
RotatingEl.BeginAnimation(Canvas.TopProperty, ELMoveY);
Как настроить анимацию «До» для неподвижного изображения?переместить вращающийся холст RotatingEl в положение статического StaticEl и отрегулировать вращение RotatingEl в соответствии с ориентацией StaticEl?