From b0365f67c77bc90a8cbf0c7d0a9b41f940d8fbcd Mon Sep 17 00:00:00 2001 From: Benedikt Stebner Date: Thu, 11 Sep 2025 18:47:58 +0200 Subject: [PATCH] Share Avalonia.Controls with Avalonia.Controls.Documents (#19191) (#19625) * Share internals with Avalonia.Constrols.Documents * Inlines might be null * Use IAddChild --------- Co-authored-by: Julien Lebosquain --- build/ExternalConsumers.props | 1 + src/Avalonia.Controls/Documents/Span.cs | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/build/ExternalConsumers.props b/build/ExternalConsumers.props index 96cf5cc608..79df2f6be4 100644 --- a/build/ExternalConsumers.props +++ b/build/ExternalConsumers.props @@ -30,5 +30,6 @@ + diff --git a/src/Avalonia.Controls/Documents/Span.cs b/src/Avalonia.Controls/Documents/Span.cs index a1d35d06c7..e3f9a1825e 100644 --- a/src/Avalonia.Controls/Documents/Span.cs +++ b/src/Avalonia.Controls/Documents/Span.cs @@ -9,7 +9,7 @@ namespace Avalonia.Controls.Documents /// /// Span element used for grouping other Inline elements. /// - public class Span : Inline + public class Span : Inline, IAddChild, IAddChild, IAddChild { /// /// Defines the property. @@ -96,5 +96,20 @@ namespace Avalonia.Controls.Documents void OnInlinesInvalidated(object? sender, EventArgs e) => InlineHost?.Invalidate(); } + + void IAddChild.AddChild(Inline inline) + { + Inlines?.Add(inline); + } + + void IAddChild.AddChild(Control child) + { + Inlines?.Add(new InlineUIContainer(child)); + } + + void IAddChild.AddChild(string text) + { + Inlines?.Add(new Run(text)); + } } }