WPF: Control Template that is customized by properties


The following example demonstrates a window that defines a custom ControlTemplate for the System.Windows.Controls.Label control. Within the ControlTemplate there is a System.Windows.Controls.Border control that uses the TemplateBinding markup extension to declare that its Background property should derive its value from the Background property of the Label element, which in this case is set to LightBlue.

For Example:


<
Window x:Class="ControlTemplate.Window1"
xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
Title="ControlTemplate" Height="100" Width="180">
<Window.Resources>
  <ControlTemplate x:Key="labelTemplate" TargetType="{x:Type Label}">
    <Border x:Name="border" CornerRadius="4" BorderThickness="3" 
            BorderBrush="DarkGray" Background="{TemplateBinding Property=Background}">
      <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
    
</Border>
 
 </ControlTemplate>
</Window.Resources>
  <Grid>
   <Label Width="100" Height="24" Margin="4" Content="Custom Label" 
      Template="{StaticResource labelTemplate}" Background="LightBlue"/>
  </Grid>
</
Window>