aquí está el error que tengo cuando quiero adjuntar un FrameworkElement a una nueva ventana para publicarlo en un archivo PNG.El elemento especificado ya es el elemento lógico de otro elemento. Desconectar primero
Así que mi idea es eliminar el vínculo entre padres e hijos, llamar a mi método, y añadir al niño de nuevo con este código:
this.RemoveLogicalChild(element);
PublishFrameworkElement(element, stream);
this.AddLogicalChild(element);
pero me dio el mismo error exacto ...
Mire muchas preguntas sobre este error, aquí en SO, pero ninguna respondió a mi problema ¿Qué me estoy perdiendo?
EDIT: aquí está el código que trabajó para mí:
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();
¡Eso me ayudó! Publiqué el código en mi pregunta editada :) –
¿Establecería nulo, desconectaría los eventos también? – Rauld
No, también debería eliminar cualquier controlador de eventos. – Clemens