I’m building a simple ControlTemplate for a Button. I want to draw a 2 color gradient, and bind the two colors so I don’t need to hard code them in the template. But since Background and Foreground are Brushes and not just Colors, I’m not sure this will work.
Can anyone tell me if there is a good way to do this? it seems simple enough. Thanks.
<ControlTemplate x:Key="ElipseButton" TargetType="Button">
<Ellipse>
<Ellipse.Fill>
<RadialGradientBrush RadiusX="1" RadiusY="1" GradientOrigin="0.7,0.8">
<GradientStop Color="White" Offset="0"/>
<GradientStop Color="Black" Offset="1"/>
</RadialGradientBrush>
</Ellipse.Fill>
</Ellipse>
</ControlTemplate>
I want to replace the ‘Black’ and ‘White’ colors with TemplateBindings.
You can use attached properties to add some new Color properties that you can use on Button:
You can then set these on any instance and access them in your template using normal Bindings (TemplateBindings won’t work here):