Visual.RemoveVisualChild(Visual) Methode

Definition

Entfernt die hierarchische Beziehung zwischen zwei visuellen Elementen.

protected:
 void RemoveVisualChild(System::Windows::Media::Visual ^ child);
protected void RemoveVisualChild (System.Windows.Media.Visual child);
member this.RemoveVisualChild : System.Windows.Media.Visual -> unit
Protected Sub RemoveVisualChild (child As Visual)

Parameter

child
Visual

Das untergeordnete visuelle Objekt, das vom übergeordneten visuellen Element entfernt werden soll.

Beispiele

Das folgende Beispiel zeigt, wie Benutzerdefinierte Speicheranforderungen für ein untergeordnetes Visual definiert werden. Im Beispiel werden die AddVisualChild Methoden und RemoveVisualChild verwendet, um die Über-/Untergeordnete Beziehung zwischen dem übergeordneten Visual und childeinzurichten. Damit die visuelle Struktur ordnungsgemäß aufgezählt wird, werden im Beispiel überschriebene Implementierungen der -Methode und VisualChildrenCount -GetVisualChildEigenschaft bereitgestellt.

Hinweis

Obwohl es möglich ist, VisualCollection beziehungen zwischen visuellen Objekten über- und untergeordneten Objekten zu erstellen, ist es effizienter, eine eigene benutzerdefinierte Speicherimplementierung bereitzustellen, wenn nur ein untergeordnetes Element mit einem übergeordneten Objekt verknüpft ist.

// Create a host visual derived from the FrameworkElement class.
// This class provides layout, event handling, and container support for
// the child visual object.
public class MyVisualHost : FrameworkElement
{
    private DrawingVisual _child;

    public MyVisualHost(DrawingVisual drawingVisual)
    {
        _child = drawingVisual;
        this.AddVisualChild(_child);
    }

    public DrawingVisual Child
    {
        get
        {
            return _child;
        }

        set
        {
            if (_child != value)
            {
                this.RemoveVisualChild(_child);
                _child = value;
                this.AddVisualChild(_child);
            }
        }
    }

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

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

        return _child;
    }
' Create a host visual derived from the FrameworkElement class.
' This class provides layout, event handling, and container support for
' the child visual object.
Public Class MyVisualHost
    Inherits FrameworkElement
    Private _child As DrawingVisual

    Public Sub New(ByVal drawingVisual As DrawingVisual)
        _child = drawingVisual
        Me.AddVisualChild(_child)
    End Sub

    Public Property Child() As DrawingVisual
        Get
            Return _child
        End Get

        Set(ByVal value As DrawingVisual)
            If _child IsNot value Then
                Me.RemoveVisualChild(_child)
                _child = value
                Me.AddVisualChild(_child)
            End If
        End Set
    End Property

    ' Provide a required override for the VisualChildrenCount property.
    Protected Overrides ReadOnly Property VisualChildrenCount() As Integer
        Get
            Return If(_child 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 _child Is Nothing Then
            Throw New ArgumentOutOfRangeException()
        End If

        Return _child
    End Function

Hinweise

Die RemoveVisualChild -Methode entfernt die Über-/Unterordnungsbeziehung zwischen zwei Visuals. Diese Methode muss zusammen mit der AddVisualChild -Methode verwendet werden, wenn Sie eine bessere Steuerung der zugrunde liegenden Speicherimplementierung von untergeordneten visuellen Objekten benötigen. VisualCollection kann als Standardimplementierung zum Speichern untergeordneter Objekte verwendet werden.

Gilt für:

Weitere Informationen