Share via


ContainerVisual.VisualChildrenCount Propiedad

Definición

Obtiene el número de elementos secundarios del ContainerVisual.

protected:
 property int VisualChildrenCount { int get(); };
protected override sealed int VisualChildrenCount { get; }
member this.VisualChildrenCount : int
Protected Overrides NotOverridable ReadOnly Property VisualChildrenCount As Integer

Valor de propiedad

Número de elementos secundarios en la VisualCollection del ContainerVisual.

Ejemplos

En el ejemplo siguiente se muestra cómo crear un ContainerVisual objeto que se usa como elemento primario para dos DrawingVisual objetos. Los objetos que se agregan al ContainerVisual objeto se deben agregar en orden z inverso (inferior a superior) para asegurarse de que se están representando en el orden de dibujo correcto. Para que el árbol visual se enumere correctamente, en el ejemplo se proporcionan implementaciones invalidadas del método y VisualChildrenCount la GetVisualChild propiedad .

// 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

Comentarios

De forma predeterminada, un ContainerVisual no tiene ningún elemento secundario.

Notas a los desarrolladores de herederos

Las clases que derivan de ContainerVisual deben implementar la VisualChildrenCount propiedad para enumerar los elementos secundarios visuales. La propiedad derivada debe devolver el número de elementos secundarios para .ContainerVisual

El árbol visual no se puede modificar durante esta llamada.

Se aplica a

Consulte también