<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="WPF" Height="100" Width="160"> <Window.Resources> <ControlTemplate x:Key="buttonTemplate" TargetType="{x:Type Button}"> <Border x:Name="border" BorderThickness="3" BorderBrush="DarkGray" Background="LightGray"> <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter TargetName="border" Property="Background" Value="Orange"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Window.Resources> <Grid> <Button x:Name="button" Height="24" HorizontalAlignment="Stretch" Content="Custom Template" Template="{StaticResource buttonTemplate}" Click="Button_Click"> </Button> </Grid> </Window> //File:Window.xaml.cs using System; using System.Windows; using System.Windows.Controls; namespace WpfApplication1 { public partial class Window1 : Window { public Window1() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { Border borderInTemplate = (Border)button.Template.FindName("border", button); Console.WriteLine(borderInTemplate.GetValue(Border.ActualWidthProperty)); } } }