public void RemoveChildThenStart4 () { Canvas c = CreateStoryboard (); Storyboard sb = (Storyboard) c.Resources ["Storyboard"]; Storyboard child = (Storyboard) sb.Children [1]; sb.Children.RemoveAt (1); c.Resources.Clear (); TimelineCollection collection = new TimelineCollection(); Storyboard storyboard = new Storyboard (); storyboard.Children.Add (child); Storyboard.SetTargetName (child, null); Storyboard.SetTarget (child, c.Children[0]); CreateAsyncTest (c, delegate { Console.WriteLine (1); storyboard.Begin (); }, delegate { Console.WriteLine (2); storyboard.Stop (); }, delegate { Console.WriteLine (3); collection.Add (storyboard); }, delegate { Console.WriteLine (4); storyboard.Begin (); }, delegate { Console.WriteLine (5); storyboard.Stop (); }, delegate { Console.WriteLine (6); collection.Remove (storyboard); }, delegate { Console.WriteLine (7); sb.Children.Add (storyboard); }, delegate { Console.WriteLine (8); sb.Children.Remove (storyboard); }, delegate { Console.WriteLine (9); Assert.Throws<InvalidOperationException> (delegate { storyboard.Begin (); }); } ); }