AvaloniaUI/Avalonia · error · InvalidOperationException
Visual already has a parent
Error message
Visual already has a parent
What it means
Error "Visual already has a parent" thrown in AvaloniaUI/Avalonia.
Source
Thrown at src/Avalonia.Base/Rendering/Composition/VisualCollection.cs:79
partial void OnRemoved(CompositionVisual item)
{
item.Parent = null;
RemoveHitTestChild(item);
}
partial void OnBeforeClear()
{
foreach (var i in this)
i.Parent = null;
}
partial void OnClear() => ClearHitTestChildren();
partial void OnBeforeAdded(CompositionVisual item)
{
if (item.Parent != null)
throw new InvalidOperationException("Visual already has a parent");
item.Parent = _owner;
}
private void AddHitTestChild(CompositionVisual item)
{
if (_owner is CompositionContainerVisual container)
container.AddHitTestChild(item);
}
private void RemoveHitTestChild(CompositionVisual item)
{
if (_owner is CompositionContainerVisual container)
container.RemoveHitTestChild(item);
}
private void ClearHitTestChildren()
{
if (_owner is CompositionContainerVisual container)View on GitHub (pinned to 11c5427268)
Solutions
- Remove the visual from its current parent visual collection before adding it to a new one.
- Create a new CompositionVisual instead of re-parenting an already attached one.
When it happens
Trigger: Raised when adding a CompositionVisual to a VisualCollection while it already belongs to another parent collection. Defend by removing the visual from its current parent before re-parenting, and by tracking ownership in one place.
Common situations: See trigger scenarios.
AI-assisted analysis of AvaloniaUI/Avalonia@11c5427268 (2026-08-13).
Data as JSON: /api/errors/fa31a30353fa086e.
Report an issue: GitHub.