Mega Code Archive

 
Categories / VB.Net / WPF
 

Get The actual width of the border in the ControlTemplate

<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.vb Imports System Imports System.Windows Imports System.Windows.Controls Namespace WpfApplication1   Public Partial Class Window1     Inherits Window     Public Sub New()       InitializeComponent()     End Sub     Private Sub Button_Click(sender As Object, e As RoutedEventArgs)       Dim borderInTemplate As Border = DirectCast(button.Template.FindName("border", button), Border)       Console.WriteLine(borderInTemplate.GetValue(Border.ActualWidthProperty))     End Sub   End Class End Namespace