Стандартным шаблоном является использование TemplateBinding в шаблоне элемента управления для привязки к свойствам самого элемента управления, а затем установка свойств для элемента управления в стиле.Например:
<Window.Resources>
<ControlTemplate x:Key="Template1" TargetType="Button">
<Grid>
<Rectangle Name="rect" Fill="{TemplateBinding Background}" Stroke="Blue" StrokeThickness="2"/>
<TextBlock Name="text" Text="Hallo" Foreground="Red" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
</ControlTemplate>
<Style x:Key="Style1" TargetType="Button" >
<Setter Property="Background" Value="Red"/>
</Style>
</Window.Resources>
Это свяжет свойство Fill на прямоугольнике со свойством Background на кнопке.Стиль установит для свойства Background значение Red, в результате чего для Fill будет установлено значение Red.
Чтобы установить значения по умолчанию, вы обычно создаете стиль, который задает шаблон, а также другие свойства:
<Window.Resources>
<Style x:Key="BaseStyle" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Rectangle Name="rect" Fill="{TemplateBinding Background}" Stroke="Blue" StrokeThickness="2"/>
<TextBlock Name="text" Text="Hallo" Foreground="Red" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="White"/>
</Style>
<Style x:Key="Style1" TargetType="Button" BasedOn="{StaticResource BaseStyle}">
<Setter Property="Background" Value="Red"/>
</Style>
</Window.Resources>
Первый стиль применяет шаблон и устанавливает для фона значение White, поэтому прямоугольник будет белым.Второй стиль наследуется от первого, но цвет фона задается красным, поэтому прямоугольник будет красным.