Windows Dev Center

The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

FrameworkElement::GetTemplateChild Method

Returns the named element in the visual tree of an instantiated ControlTemplate.

Namespace:  System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)

protected public:
DependencyObject^ GetTemplateChild(
	String^ childName


Type: System::String

Name of the child to find.

Return Value

Type: System.Windows::DependencyObject
The requested element. May be nullptr if no element of the requested name exists.

Templates in WPF have a self-contained namescope. This is because templates are re-used, and any name defined in a template cannot remain unique when multiple instances of a control each instantiate its template. Call the GetTemplateChild method to return references to objects that come from the template after it is instantiated. You cannot use the FrameworkElement::FindName method to find items from templates because FrameworkElement::FindName acts in a more general scope, and there is no connection between the ControlTemplate class itself and the instantiated template once it is applied.

FrameworkTemplate::FindName supplies the same function as this method. FrameworkTemplate::FindName is public instead of protected, and it uses correct name-scoping considerations that allow it to access the template within an element and find named items within it. Use FrameworkTemplate::FindName when you need to get an element outside of its parent control.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
© 2015 Microsoft