For a Border within a Template specified under a Style:
<Thickness x:Key="CommonBorderThickness">2</Thickness>
<Style x:Key="CommonButtonStyle" TargetType="Button">
...
<Setter Property="BorderThickness" Value="2" />
...
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
...
<Border Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2"
this works fine:
BorderThickness="{Binding Source={StaticResource CommonBorderThickness}, Converter={StaticResource FourGroupSizeConverter}}"
but these do not:
BorderThickness="{TemplateBinding BorderThickness, Converter={StaticResource FourGroupSizeConverter}}"
BorderThickness="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=BorderThickness, Converter={StaticResource FourGroupSizeConverter}}"
Any ideas as to why?
Update - Here's the full Template FYI...
<ControlTemplate x:Name="CommonButtonControlTemplate" TargetType="Button">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<Storyboard>
<ColorAnimation Duration="0" Storyboard.TargetName="ButtonBackground" Storyboard.TargetProperty="Color" To="DimGray" />
<ColorAnimation Duration="0" Storyboard.TargetName="ButtonBorderBrush" Storyboard.TargetProperty="Color" To="Gray" />
</Storyboard>
</VisualState>
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimation Duration="0" Storyboard.TargetName="ButtonBackground" Storyboard.TargetProperty="Color" To="Red" />
<ColorAnimation Duration="0" Storyboard.TargetName="ButtonBorderBrush" Storyboard.TargetProperty="Color" To="Lime" />
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard>
<ColorAnimation Duration="0" Storyboard.TargetName="ButtonBackground" Storyboard.TargetProperty="Color" To="Red" />
<ColorAnimation Duration="0" Storyboard.TargetName="ButtonBorderBrush" Storyboard.TargetProperty="Color" To="Lime" />
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Focused">
<Storyboard>
<ColorAnimation Duration="0" Storyboard.TargetName="ButtonBackground" Storyboard.TargetProperty="Color" To="Red" />
<ColorAnimation Duration="0" Storyboard.TargetName="ButtonBorderBrush" Storyboard.TargetProperty="Color" To="Lime" />
</Storyboard>
</VisualState>
<VisualState x:Name="Unfocused" />
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="20*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="18*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" BorderBrush="Black" removed="Black" Opacity="0.3"
BorderThickness="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=BorderThickness, Converter={StaticResource FourGroupSizeConverter},
FallbackValue={Binding RelativeSource={RelativeSource TemplatedParent}, Path=BorderThickness}}"
CornerRadius="{Binding Source={StaticResource CornerRadius}, Converter={StaticResource FourGroupSizeConverter},
FallbackValue={StaticResource CornerRadius}}" />
<Border Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0" Grid.RowSpan="2"
BorderThickness="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=BorderThickness, Converter={StaticResource FourGroupSizeConverter},
FallbackValue={Binding RelativeSource={RelativeSource TemplatedParent}, Path=BorderThickness}}"
CornerRadius="{Binding Source={StaticResource CornerRadius}, Converter={StaticResource FourGroupSizeConverter},
FallbackValue={StaticResource CornerRadius}}">
<Border.Background>
<SolidColorBrush x:Name="ButtonBackground" Color="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}"/>
</Border.Background>
<Border.BorderBrush>
<SolidColorBrush x:Name="ButtonBorderBrush" Color="{TemplateBinding BorderBrush}"/>
</Border.BorderBrush>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="14*" />
<ColumnDefinition Width="14*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="10*" />
<RowDefinition Height="10*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Image Grid.Column="1" Grid.Row="1" Source="/Assets/en-ie/Common/pawprint.png" Margin="0,8,8,0" />
<ContentPresenter Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2">
<TextBlock Text="{TemplateBinding Content}" TextAlignment="Center"
FontSize="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=FontSize, Converter={StaticResource SizeConverter},
FallbackValue={Binding RelativeSource={RelativeSource TemplatedParent}, Path=FontSize}}" />
</ContentPresenter>
</Grid>
</Border>
</Grid>
</ControlTemplate>