Q:

Animate Opacity of FlowDocument TableRow in code behind

I have a FlowDocument TableRow that I want to fade out.
var opacityAnimation = new DoubleAnimation();
   opacityAnimation.To = 0.0;
   opacityAnimation.Duration = TimeSpan.FromSeconds(1);
   Storyboard.SetTarget(opacityAnimation, row.Foreground);
   Storyboard.SetTargetProperty(opacityAnimation, new PropertyPath(SolidColorBrush.OpacityProperty));
   var storyboard = new Storyboard();
   storyboard.Children.Add(opacityAnimation);
   storyboard.Begin();

Cannot animate '(0)' on an immutable object instance. I am having trouble because it appears you cannot manipulate the Opacity directly, you have to change the Brush that is the TableRow foreground.  
What am I supposed to target with the storyboard??

A:

With the following slight changes, I managed to animate the table row:
row.Foreground = new SolidColorBrush(Colors.Black);
var opacityAnimation = new DoubleAnimation();
opacityAnimation.From = 1.0;
opacityAnimation.To = 0.0;
opacityAnimation.Duration = TimeSpan.FromSeconds(1);
Storyboard.SetTarget(opacityAnimation, row);
Storyboard.SetTargetProperty(opacityAnimation,
    new PropertyPath("(TableRow.Foreground).(Brush.Opacity)"));
var storyboard = new Storyboard();
storyboard.Children.Add(opacityAnimation);
storyboard.Begin();

The foreground brush must be freshly created, such that it is not frozen (= non-animatable); see first line of code. Furthermore, the target property path needs to be "(TableRow.Foreground).(Brush.Opacity)" and the target must be the row itself, not row.Foreground.

