Skip to main content
FrameworkElementGetVisualChild Method
 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Overrides VisualGetVisualChild, and returns a child at the specified index from a collection of child elements.

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

protected override Visual GetVisualChild(
	int index
)
protected:
virtual Visual^ GetVisualChild(
	int index
) override
override GetVisualChild : 
        index:int -> Visual
Protected Overrides Function GetVisualChild (
	index As Integer
) As Visual

Parameters

index
Type:

The zero-based index of the requested child element in the collection.

Return Value

Type:

The requested child element. This should not return null; if the provided index is out of range, an exception is thrown.

In the FrameworkElement implementation, the only valid index is zero. The content model for GetVisualChild supports either zero or one child elements, not a collection.

Notes to Inheritors:

This implementation is only valid for elements that do not maintain any more descriptive collection of visual child elements. Any element that does have such a collection must override this method and map the index to an equivalent index in the child element collection that is supported by that element. An index in the range from zero to (minus one) should return a valid element; any other index should throw an out-of-range exception. An example of an element type that does support a child collection and overrides GetVisualChild to return more than one possible child is Panel.

The default implementation in FrameworkElement presumes only one visual child. Any value passed for index other than zero causes an exception to be thrown. Several common elements, such as decorators, adorners, or elements with specialized rendering, override the FrameworkElement implementation (of the implementation from intermediate base classes). Some implementations still enforce one visual child whereas others allow a collection.

The following example shows how a custom adorner uses the values declared by a VisualCollection that it maintains for its multiple visual children. These values are reported through overrides of and GetVisualChild.

// To store and manage the adorner's visual children.
VisualCollection visualChildren;
' To store and manage the adorner's visual children.
Private visualChildren As VisualCollection
// Override the VisualChildrenCount and GetVisualChild properties to interface with 
// the adorner's visual collection.
protected override int VisualChildrenCount { get { return visualChildren.Count; } }
protected override Visual GetVisualChild(int index) { return visualChildren[index]; }
' Override the VisualChildrenCount and GetVisualChild properties to interface with 
' the adorner's visual collection.
Protected Overrides ReadOnly Property VisualChildrenCount() As Integer
	Get
		Return visualChildren.Count
	End Get
End Property
Protected Overrides Function GetVisualChild(ByVal index As Integer) As Visual
	Return visualChildren(index)
End Function
.NET Framework
Available since 3.0
Return to top