FrameworkElement.GetVisualChild(Int32) Метод

Определение

Переопределяет GetVisualChild(Int32) и возвращает дочерний элемент по указанному индексу из коллекции дочерних элементов.

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

Параметры

index
Int32

Отсчитываемый от нуля индекс запрошенного дочернего элемента коллекции.

Возвращаемое значение

Запрошенный дочерний элемент. Не должен возвращать null; если указанный индекс находится вне диапазона, создается исключение.

Примеры

В следующем примере показано, как пользовательский графический элемент использует значения, объявленные объектом , VisualCollection для нескольких дочерних элементов визуального элемента. Эти значения передаются с помощью переопределений VisualChildrenCount и 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

Комментарии

FrameworkElement В реализации единственным допустимым индексом является ноль. Модель содержимого для GetVisualChild поддерживает либо ноль, либо один дочерний элемент, а не коллекцию.

Примечания для тех, кто наследует этот метод

Эта реализация допустима только для элементов, которые не поддерживают более описательную коллекцию визуальных дочерних элементов. Любой элемент, имеющий такую коллекцию, должен переопределить этот метод и сопоставить индекс с эквивалентным индексом в коллекции дочерних элементов, поддерживаемой этим элементом. Индекс в диапазоне от нуля до VisualChildrenCount (минус единица) должен возвращать допустимый элемент; любой другой индекс должен вызывать исключение вне диапазона. Примером типа элемента, который поддерживает дочернюю коллекцию и переопределяет для возврата нескольких GetVisualChild(Int32) возможных дочерних элементов, является Panel.

Реализация по умолчанию в предполагает FrameworkElement только один визуальный дочерний элемент. Любое значение, передаваемое для index , отличное от нуля, вызывает исключение. Несколько общих элементов, таких как декораторы, графические элементы или элементы со специализированной отрисовкой, переопределяют FrameworkElement реализацию (реализации из промежуточных базовых классов). В некоторых реализациях по-прежнему применяется один визуальный дочерний элемент, в то время как другие позволяют выполнять коллекцию.

Применяется к