캔버스에있는 이미지의 왼쪽 속성에 애니메이션을 적용하려고합니다.Animate Canvas.Left 속성
것은 내가하고 있어요 경우 :
image.SetValue(Canvas.LeftProperty, destX[i]);
이 노력하고 있습니다. 그러나 나는 일을 해요 때
Animate(image, lastValue, destX[i], 500);
private void Animate(Image image, double val1, double val2, double miliseconds)
{
DoubleAnimation myDoubleAnimation = new DoubleAnimation { From = val1, To = val2, Duration = new Duration(TimeSpan.FromMilliseconds(miliseconds)) };
TranslateTransform ts = new TranslateTransform();
image.RenderTransform = ts;
Storyboard.SetTarget(myDoubleAnimation, ts);
Storyboard.SetTargetProperty(myDoubleAnimation, new PropertyPath(TranslateTransform.XProperty));
Storyboard myMovementStoryboard = new Storyboard();
myMovementStoryboard.Children.Add(myDoubleAnimation);
myMovementStoryboard.Begin();
myMovementStoryboard.Completed += (s, e) =>
{
image.SetValue(Canvas.LeftProperty, val2);
};
}
내 애니메이션 기능에서 잘못 될 수있는 것
을 작동하지 않습니다 로? 애니메이션을 잘못 수행 할 수있는 경우에도 완료된 이벤트는 좋은 값을 canvas.leftproperty로 다시 설정해야합니다.하지만 내 경우에는 문제가 발생합니다.
어떻게 애니메이션 기능을 수행 했습니까? 어떤 도움
사실 저는 canvas.left 속성을 사용하고 싶습니다. Storyboard.SetTargetProperty (myDoubleAnimation, 새 PropertyPath (Canvas.LeftProperty))를 사용하면 안됩니다. ? TranslateTransform.XProperty를 사용하는 대신? (물론 시도한 후에 인수 예외가 있습니다.) – Tim
Canvas.LeftProperty를 애니메이션 할 수 있어야합니다. 이 경우 작동하지 않는 이유를 이해하기 위해 코드가 어떻게 보이는지 확인해야합니다. 목표는이 경우 '이미지'입니다. –