У меня есть WPF Image в сетке 1x1, которую я пытаюсь переместить в новое место. Я использую следующий код:
public void AnimateImage(int seatNum, int cardNum)
{
// This method animates dealing a cardback image to the specified seat.
//
Point[][,] Margins;
Margins = CardMargins; // CardMargins contains the positions to where the cards should end up after being moved.
Image CardbackImage1 = CardbackImages[seatNum, cardNum];
// Specify the starting position of the image.
CardbackImage1.Margin = new Thickness(DealerStartX, DealerStartY, 0, 0);
CardsGrid.Children.Insert(seatNum, CardbackImage1);
// Note that if instead of specifying the starting point, the to-point is specified instead,
// and a return inserted at this point - it displays the card in the correct location.
TranslateTransform trans = new TranslateTransform();
CardbackImage1.RenderTransform = trans;
double ToPosX = Margins[NumSeats][seatNum, cardNum].X;
double ToPosY = Margins[NumSeats][seatNum, cardNum].Y;
// DoubleAnimation CardsAnimX = new DoubleAnimation(DealerStartX, 65, TimeSpan.FromSeconds(DealAnimateTime));
DoubleAnimation CardsAnimX = new DoubleAnimation(DealerStartX, ToPosX, TimeSpan.FromSeconds(DealAnimateTime));
// DoubleAnimation CardsAnimY = new DoubleAnimation(DealerStartY, DealerStartY - 50, TimeSpan.FromSeconds(DealAnimateTime));
DoubleAnimation CardsAnimY = new DoubleAnimation(DealerStartY, ToPosY, TimeSpan.FromSeconds(DealAnimateTime));
trans.BeginAnimation(TranslateTransform.XProperty, CardsAnimX);
trans.BeginAnimation(TranslateTransform.YProperty, CardsAnimY);
}
Массив CardMargins используется для хранения мест, где должна заканчиваться карта. Карта оживает, но проблема в том, что карта не оказывается в нужном месте. Я проверил правильность значений внутри массива CardMargins вместе с индексами массива. Я подозреваю, что метод TranslateTransform либо использует другой тип координат, либо, возможно, другую систему координат.
Может ли margin использоваться в качестве свойства анимации, и если да, то нужно ли использовать какой-либо тип преобразования, чтобы его можно было использовать с TranslateTransform? Есть ли лучший способ анимации изображения без использования поля?