title: Blend Interaction Behaviour gives "points to immutable instance" error
body: <p>I have a UserControl that is a base class for other user controls, that are shown in a "modal view".<br>
  I want to have all user controls fading in when shown and fading out when closed. I also want the user to be able to move the controls around. My constructor looks like this:</p>
  
  <pre><code>var tg = new TransformGroup();
  tg.Children.Add(new ScaleTransform());
  RenderTransform = tg;
  var behaviors = Interaction.GetBehaviors(this);
  behaviors.Add(new TranslateZoomRotateBehavior());  
  
  Loaded += ModalDialogBase_Loaded;
  </code></pre>
  
  <p>And the ModalDialogBase_Loaded method looks like this:</p>
  
  <pre><code>private void ModalDialogBase_Loaded(object sender, RoutedEventArgs e)
  {
      var fadeInStoryboard = (Storyboard)TryFindResource("modalDialogFadeIn");
      fadeInStoryboard.Begin(this);
  }
  </code></pre>
  
  <p>When I press a Close-button on the control this method is called:</p>
  
  <pre><code>protected virtual void Close()
  {
      var fadeOutStoryboard = (Storyboard)TryFindResource("modalDialogFadeOut");  
      fadeOutStoryboard = fadeOutStoryboard.Clone();
      fadeOutStoryboard.Completed += delegate
      {
          RaiseEvent(new RoutedEventArgs(ClosedEvent));
      };
      fadeOutStoryboard.Begin(this);
  }
  </code></pre>
  
  <p>The storyboard for fading out look like this:</p>
  
  <pre><code>&lt;Storyboard x:Key="modalDialogFadeOut"&gt;
      &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="{x:Null}"&gt;
          &lt;EasingDoubleKeyFrame KeyTime="0" Value="1"&gt;
              &lt;EasingDoubleKeyFrame.EasingFunction&gt;
                  &lt;BackEase EasingMode="EaseIn" Amplitude="0.3" /&gt;
              &lt;/EasingDoubleKeyFrame.EasingFunction&gt;
          &lt;/EasingDoubleKeyFrame&gt;
          &lt;EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0"&gt;
              &lt;EasingDoubleKeyFrame.EasingFunction&gt;
                  &lt;BackEase EasingMode="EaseIn" Amplitude="0.3" /&gt;
              &lt;/EasingDoubleKeyFrame.EasingFunction&gt;
          &lt;/EasingDoubleKeyFrame&gt;
      &lt;/DoubleAnimationUsingKeyFrames&gt;
      &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" Storyboard.TargetName="{x:Null}"&gt;
          &lt;EasingDoubleKeyFrame KeyTime="0" Value="1"&gt;
              &lt;EasingDoubleKeyFrame.EasingFunction&gt;
                  &lt;BackEase EasingMode="EaseIn" Amplitude="0.3" /&gt;
              &lt;/EasingDoubleKeyFrame.EasingFunction&gt;
          &lt;/EasingDoubleKeyFrame&gt;
          &lt;EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0"&gt;
              &lt;EasingDoubleKeyFrame.EasingFunction&gt;
                  &lt;BackEase EasingMode="EaseIn" Amplitude="0.3" /&gt;
              &lt;/EasingDoubleKeyFrame.EasingFunction&gt;
          &lt;/EasingDoubleKeyFrame&gt;
      &lt;/DoubleAnimationUsingKeyFrames&gt;
      &lt;DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="{x:Null}"&gt;
          &lt;EasingDoubleKeyFrame KeyTime="0" Value="1" /&gt;
          &lt;EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0" /&gt;
          &lt;EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0" /&gt;
      &lt;/DoubleAnimationUsingKeyFrames&gt;
  &lt;/Storyboard&gt;
  </code></pre>
  
  <p>If the user control is shown, and the user does NOT move it around on the screen, everything works fine. However, if the user DOES move the control around, I get the following error when the modalDialogFadeOut storyboard is started:</p>
  
  <p>'Children' property value in the path '(0).(1)[0].(2)' points to immutable instance of 'System.Windows.Media.TransformCollection'. </p>
  
  <p>How can I fix this?</p>