As @Snowbear said, you should bind Color to Color , not Color to Brush . But in his solution, TemplateBinding with a deep Path property such as Foreground.Color is not allowed as part of binding markup.
So use the following ...
<Border.Background> <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> <GradientStop Color="{Binding Foreground.Color, RelativeSource={RelativeSource TemplatedParent}}" Offset="0.2"/> <GradientStop Color="{Binding Background.Color, RelativeSource={RelativeSource TemplatedParent}}" Offset="0.6"/> </LinearGradientBrush> </Border.Background>
And it should work.
source share