Condividi tramite


ContainerVisual.VisualChildrenCount Proprietà

Definizione

Ottiene il numero di elementi figlio per 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

Valore della proprietà

Numero di elementi figlio nell'oggetto VisualCollection di ContainerVisual.

Esempio

Nell'esempio seguente viene illustrato come creare un ContainerVisual oggetto utilizzato come padre per due DrawingVisual oggetti . Gli oggetti aggiunti all'oggetto ContainerVisual devono essere aggiunti in ordine z inverso (in basso verso l'alto) per assicurarsi che il rendering sia corretto nell'ordine di disegno corretto. Affinché la struttura ad albero visuale venga enumerata correttamente, nell'esempio vengono fornite implementazioni sottoposte a override del metodo e VisualChildrenCount della GetVisualChild proprietà .

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

Commenti

Per impostazione predefinita, un ContainerVisual oggetto non include elementi figlio.

Note per gli eredi

Le classi che derivano da ContainerVisual devono implementare la VisualChildrenCount proprietà per enumerare gli elementi figlio dell'oggetto visivo. La proprietà derivata deve restituire il numero di elementi figlio per .ContainerVisual

Impossibile modificare la struttura ad albero visuale durante questa chiamata.

Si applica a

Vedi anche