ecco l'errore che ho quando voglio collegare un FrameworkElement a una nuova finestra per pubblicarlo in un file PNG.L'elemento specificato è già il figlio logico di un altro elemento. Disconnettilo per primo
Quindi la mia idea è quella di rimuovere il link genitore-figlio, chiamare il mio metodo, e aggiungere il bambino di nuovo con questo codice:
this.RemoveLogicalChild(element);
PublishFrameworkElement(element, stream);
this.AddLogicalChild(element);
Ma ho ottenuto lo stesso errore esatto ...
Ho guardato un sacco di domande su questo errore, qui su SO, ma nessuno ha risposto al mio problema Cosa mi manca?
EDIT: qui è il codice che ha funzionato per me:
var element = _GeneratedContent as FrameworkElement;
var ParentPanelCollection = (element.Parent as Panel).Children as UIElementCollection;
ParentPanelCollection.Clear();
FileStream stream = [...]
if (element != null)
{
PublishFrameworkElement(element, stream);
ParentPanelCollection.Add(element);
}
stream.Close();
Questo mi ha aiutato! Ho postato il codice nella mia domanda modificata :) –
imposterebbe su null, disconnettere anche gli eventi? – Rauld
No, dovresti anche rimuovere qualsiasi gestore di eventi. – Clemens