diff --git a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs b/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs index bf1799bbdc..353445f5a6 100644 --- a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs +++ b/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs @@ -354,9 +354,12 @@ namespace Avalonia.Rendering foreach (var operation in node.DrawOperations) { - _currentDraw = operation; - operation.Item.Render(context); - _currentDraw = null; + if (operation.Item != null) + { + _currentDraw = operation; + operation.Item.Render(context); + _currentDraw = null; + } } foreach (var child in node.Children) diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/Scene.cs b/src/Avalonia.Visuals/Rendering/SceneGraph/Scene.cs index 1afc096c98..c31b99e2e4 100644 --- a/src/Avalonia.Visuals/Rendering/SceneGraph/Scene.cs +++ b/src/Avalonia.Visuals/Rendering/SceneGraph/Scene.cs @@ -150,7 +150,7 @@ namespace Avalonia.Rendering.SceneGraph index.Add(result.Visual, result); - foreach (var child in source.Children) + foreach (var child in source.Children.Where(x=>!x.Disposed)) { result.AddChild(Clone((VisualNode)child, result, index)); }