FrameworkElement::GetTemplateChild Method (String^)


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

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

public protected:
DependencyObject^ GetTemplateChild(
	String^ childName


Type: System::String^

Name of the child to find.

Return Value

Type: System.Windows::DependencyObject^

The requested element. May be null 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
Available since 3.0
Return to top