I have silverlight problem I\'v used two days to fight: a template with a style controls a button. In the concrete button I have a canvas with paths as content. The problem is t
Binding to ContentControl should help (Silverlight 5):
<Button x:Name="Play" Style="{StaticResource PathButtonStyle}" >
<Canvas x:Name="PlayIcon">
<Path Data="F1M191.4839,96.1763L177.9149,106.5173L177.9149,85.9293z"
Fill="{Binding Foreground, RelativeSource={RelativeSource FindAncestor, AncestorType=ContentControl}}" />
</Canvas>
</Button>
Actually instead of setting Canvas as Content in Button you can put it in Templete.
<Style x:Key="PathButtonStyle" TargetType="Button">
... Animations and state stuff
<Canvas x:Name="PlayIcon">
<Path Data="F1M191.4839,96.1763L177.9149,106.5173L177.9149,85.9293z"
Fill="{TemplateBinding Foreground}" />
</Canvas>
<Border x:Name="ButtonBackground" BorderBrush="{TemplateBinding BorderBrush}" >
<ContentControl x:Name="ContentContainer"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
Foreground="{TemplateBinding Foreground}" />
</Border>
</Style>
you can do anything you want if you'll use this scenario.
Since you gave a name to your button, you can use the Binding ElementName
parameter:
<Button x:Name="Play" Style="{StaticResource PathButtonStyle}" >
<Canvas x:Name="PlayIcon">
<Path Data="F1M191.4839,96.1763L177.9149,106.5173L177.9149,85.9293z"
Fill="{Binding Foreground, ElementName=Play}" />
</Canvas>
</Button>