Trennen eines Elements von einem beliebigen / nicht angegebenen übergeordneten Container in WPF

Habe ich eine Kontrolle, der ein Kind von einem anderen Steuerelement (wie alle nicht-root-Steuerungen/Elemente in WPF).
Wenn ich mich bewegen will, die Kontrolle an einen anderen container, ich habe zu trennen aus seiner aktuellen container-ersten (andernfalls wird eine exception geworfen wird).

Wenn ich weiß, was der Vater ist, dann kann ich nur entfernen Sie es aus seiner Kinder-Kollektion, die Inhalte oder was auch immer. Aber was ist, wenn ich nicht weiß, was das übergeordnete container-Typ ist - wie Entferne ich das Kind kontrollieren?

Im code-Beispiel unten: Wie würde ich in der Lage sein, sich zu bewegen "sp1", um einen anderen Behälter, ohne zu wissen, den Typ des übergeordneten (Panel, GroupBox...)?

//Add the child object "sp1" to a container (of any type).
StackPanel sp1 = new StackPanel();
SomeParentControl.Children.Add(sp1);

//Somewhere else in the code. I still have a reference to "sp1" but now I don't know what container it is in. I just want to move the "sp1" object to another parent container.
AnotherParentControl.Content = sp1; //Generates exception: "Must disconnect specified child from current parent Visual before attaching to new parent Visual."

Idealerweise würde ich nur gerne etwas schreiben wie:

sp1.Parent.RemoveChild(sp1);

Aber ich habe nicht gefunden was so.

InformationsquelleAutor der Frage Björn | 2013-10-11

Schreibe einen Kommentar