FrameworkElement.GetVisualChild(Int32) Metoda

Definicja

GetVisualChild(Int32)Zastępuje element i zwraca element podrzędny w określonym indeksie z kolekcji elementów podrzędnych.

protected:
 override System::Windows::Media::Visual ^ GetVisualChild(int index);
protected override System.Windows.Media.Visual GetVisualChild (int index);
override this.GetVisualChild : int -> System.Windows.Media.Visual
Protected Overrides Function GetVisualChild (index As Integer) As Visual

Parametry

index
Int32

Indeks zerowy żądanego elementu podrzędnego w kolekcji.

Zwraca

Żądany element podrzędny. Nie powinno to zwracać wartości null; jeśli podany indeks jest poza zakresem, zgłaszany jest wyjątek.

Przykłady

W poniższym przykładzie pokazano, jak niestandardowy moduł adorujący używa wartości zadeklarowanych przez VisualCollection element , który utrzymuje dla wielu elementów podrzędnych wizualizacji. Te wartości są raportowane za pośrednictwem przesłonięć VisualChildrenCount elementów i 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

Uwagi

W implementacji jedynym prawidłowym indeksem FrameworkElement jest zero. Model zawartości dla programu GetVisualChild obsługuje zero lub jeden element podrzędny, a nie kolekcję.

Uwagi dotyczące dziedziczenia

Ta implementacja jest prawidłowa tylko w przypadku elementów, które nie utrzymują bardziej opisowej kolekcji elementów podrzędnych wizualizacji. Każdy element, który ma taką kolekcję, musi zastąpić tę metodę i zamapować indeks na równoważny indeks w kolekcji elementów podrzędnych obsługiwanych przez ten element. Indeks z zakresu od zera do VisualChildrenCount (minus jeden) powinien zwrócić prawidłowy element. Każdy inny indeks powinien zgłosić wyjątek poza zakresem. Przykładem typu elementu, który obsługuje kolekcję podrzędną i zastępuje GetVisualChild(Int32) zwracanie więcej niż jednego możliwego elementu podrzędnego to Panel.

Domyślna implementacja w zakładach FrameworkElement , że tylko jeden element podrzędny wizualizacji. Każda wartość przekazana dla index wartości innej niż zero powoduje zgłoszenie wyjątku. Kilka typowych elementów, takich jak dekoratory, adoratory lub elementy z wyspecjalizowanym renderowaniem, przesłaniają implementację (implementacji FrameworkElement z pośrednich klas bazowych). Niektóre implementacje nadal wymuszają jedno element podrzędny wizualizacji, podczas gdy inne zezwalają na kolekcję.

Dotyczy