A: 

This is because Animations are freezable objects. There is more information in the MSDN Documentation.

Once an animation is started, its properties cannot be changed, even in code-behind. You will need to stop the animation in your event handler, set the AutoReverse property, and restart it.

Wonko the Sane
A: 

Store the current Values in local Variables then Set the AutoReverse true/false then Create the Clock then Assign back the stored values in the AnimationClock.