Mega Code Archive

 
Categories / C# / WPF
 

Finding the border that is generated by the ControlTemplate of the Button

<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));         }     } }