ContainerVisual.GetVisualChild(Int32) ContainerVisual.GetVisualChild(Int32) ContainerVisual.GetVisualChild(Int32) ContainerVisual.GetVisualChild(Int32) Method

Определение

Возвращает указанный дочерний объект Visual родительского ContainerVisual.Returns a specified child Visual for the parent ContainerVisual.

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

Параметры

index
Int32 Int32 Int32 Int32

32-разрядное целое число со знаком, которое представляет значение индекса дочернего элемента Visual.A 32-bit signed integer that represents the index value of the child Visual. Значение index должно находиться в диапазоне от 0 до VisualChildrenCount–1.The value of index must be between 0 and VisualChildrenCount - 1.

Возвраты

Дочерний объект Visual.The child Visual.

Примеры

В следующем примере показано, как создать ContainerVisual объект, который используется как родительский для двух DrawingVisual объектов.The following example shows how to create a ContainerVisual object that is used as the parent for two DrawingVisual objects. Объекты, добавляемые в ContainerVisual объект, должны быть добавлены в обратном z-порядке (снизу вверх), чтобы обеспечить их отрисовку в правильном порядке отображения.Objects that are added to the ContainerVisual object must be added in reverse z-order (bottom to top) to ensure they are rendering in the correct drawing order. Чтобы правильно перечислить визуальное дерево, пример предоставляет переопределенные реализации GetVisualChild метода и VisualChildrenCount свойства.In order for the visual tree to be enumerated correctly, the example provides overridden implementations of the GetVisualChild method and VisualChildrenCount property.

// Create a host visual derived from the FrameworkElement class.
// This class provides layout, event handling, and container support for
// the child visual objects.
public class MyContainerVisualHost : FrameworkElement
{
    private ContainerVisual _containerVisual;

    public MyContainerVisualHost(DrawingVisual border, DrawingVisual text)
    {
        // Create a ContainerVisual to hold DrawingVisual children.
        _containerVisual = new ContainerVisual();

        // Add children to ContainerVisual in reverse z-order (bottom to top).
        _containerVisual.Children.Add(border);
        _containerVisual.Children.Add(text);

        // Create parent-child relationship with host visual and ContainerVisual.
        this.AddVisualChild(_containerVisual);
    }

    // Provide a required override for the VisualChildrenCount property.
    protected override int VisualChildrenCount
    {
        get { return _containerVisual == null ? 0 : 1; }
    }

    // Provide a required override for the GetVisualChild method.
    protected override Visual GetVisualChild(int index)
    {
        if (_containerVisual == null)
        {
            throw new ArgumentOutOfRangeException();
        }

        return _containerVisual;
    }
}
' Create a host visual derived from the FrameworkElement class.
' This class provides layout, event handling, and container support for
' the child visual objects.
Public Class MyContainerVisualHost
    Inherits FrameworkElement
    Private _containerVisual As ContainerVisual

    Public Sub New(ByVal border As DrawingVisual, ByVal text As DrawingVisual)
        ' Create a ContainerVisual to hold DrawingVisual children.
        _containerVisual = New ContainerVisual()

        ' Add children to ContainerVisual in reverse z-order (bottom to top).
        _containerVisual.Children.Add(border)
        _containerVisual.Children.Add(text)

        ' Create parent-child relationship with host visual and ContainerVisual.
        Me.AddVisualChild(_containerVisual)
    End Sub

    ' Provide a required override for the VisualChildrenCount property.
    Protected Overrides ReadOnly Property VisualChildrenCount() As Integer
        Get
            Return If(_containerVisual Is Nothing, 0, 1)
        End Get
    End Property

    ' Provide a required override for the GetVisualChild method.
    Protected Overrides Function GetVisualChild(ByVal index As Integer) As Visual
        If _containerVisual Is Nothing Then
            Throw New ArgumentOutOfRangeException()
        End If

        Return _containerVisual
    End Function
End Class

Комментарии

По умолчанию ContainerVisual у нет дочерних элементов.By default, a ContainerVisual does not have any children.

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

Визуальное дерево не может быть изменено во время этого вызова.The visual tree cannot be modified during this call.

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

Дополнительно