Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

FrameworkElement.AddLogicalChild-Methode: (Object)

 

Veröffentlicht: Oktober 2016

Fügt das angegebene Objekt an die logische Struktur dieses Elements.

Namespace:   System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)

protected internal void AddLogicalChild(
	object child
)

Parameter

child
Type: System.Object

Untergeordnetes Element hinzugefügt werden.

Verwenden Sie diese Methode für die Implementierung von Sammlungen von Objekten, die logischen untergeordneten Elemente eines Elements darstellen. Auflistung Wartung für untergeordnete elementauflistungen kann in-Getter oder Setter Klassenbehandlung Changed-Ereignissen, Konstruktoren oder in den Auflistungstypen selbst erfolgen.

Für Autoren von Steuerelementen Bearbeiten der logischen Struktur auf dieser Ebene nicht die empfohlene Vorgehensweise besteht, wenn keines der Inhaltsmodelle für verfügbaren-Basisklasse für Ihr Steuerelementszenario geeignet sind. Betrachten Sie Unterklassen auf der Ebene der ContentControl, ItemsControl, und HeaderedItemsControl. Diese Klassen stellen ein Inhaltsmodell mit besonderer Erzwingung von untergeordneten Elemente der logischen Struktur über dedizierte APIs, sowie Unterstützung für andere Features, die in der Regel wünschenswert, in einem WPF Steuerelement, z. B. Stilen mithilfe von Vorlagen. Weitere Informationen zur Verwendung von LogicalChildren und AddLogicalChild, finden Sie unter Strukturen in WPF.

AddLogicalChild kann eine Ausnahme auslösen, wenn zu einem Zeitpunkt aufgerufen, wenn die logische Struktur von einem anderen Prozess durchlaufen wird.

Das folgende Beispiel implementiert eine Child Eigenschaft in einem benutzerdefinierten FrameworkElement Implementierung des eigenen visuellen Layers ausführt. Setter für die Eigenschaft ist so konzipiert, dass wenn der Wert ändert, der alte Wert von der logischen Struktur als auch eine klassenspezifische visuelle Sammlung entfernt wird. Der Eigenschaftswert wird zwischengespeichert, und der neue Wert wird dann sowohl der logischen Struktur als auch der benutzerdefinierten visuellen Auflistung hinzugefügt.

public virtual UIElement Child
{
    get
    {
        return _child;
    }
    set
    {
        if (_child != value)
        {
            //need to remove old element from logical tree
            if (_child != null)
            {
                OnDetachChild(_child);
                RemoveLogicalChild(_child);
            }

            _vc.Clear();

            if (value != null)
            {
                //add to visual
                _vc.Add(value);
                //add to logical
                AddLogicalChild(value);
            }

            //always add the overlay child back into the visual tree if its set
            if (_overlayVisual != null)
                _vc.Add(_overlayVisual);

            //cache the new child
            _child = value;

            //notify derived types of the new child
            if (value != null)
                OnAttachChild(_child);

            InvalidateMeasure();
        }
    }
}

.NET Framework
Verfügbar seit 3.0
Zurück zum Anfang
Anzeigen: