Ну, я выясняю сам, на самом деле все довольно просто:
storyboard.Begin(canvas1, true);
storyboard.SkipToFill(canvas1);
Это означает: не важно, раскадровка уже началась, просто запустите ее (снова) и затем переходите к концу. По сути, вы не заметите, что анимация запускается снова (я не уверен, что вы можете ее заметить, то есть второй вызов Storyboard.Begin сбрасывает ее или просто продолжает?). Не забудьте истину для второго параметра метода Begin.