diff --git a/src/Uno.UI/Generated/3.0.0.0/Windows.UI.Xaml.Documents/TextElement.cs b/src/Uno.UI/Generated/3.0.0.0/Windows.UI.Xaml.Documents/TextElement.cs index d97dce126d44..9f60109a137e 100644 --- a/src/Uno.UI/Generated/3.0.0.0/Windows.UI.Xaml.Documents/TextElement.cs +++ b/src/Uno.UI/Generated/3.0.0.0/Windows.UI.Xaml.Documents/TextElement.cs @@ -196,7 +196,7 @@ public bool IsAccessKeyScope } } #endif - #if __ANDROID__ || __IOS__ || NET461 || false || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] public global::Windows.UI.Xaml.XamlRoot XamlRoot { diff --git a/src/Uno.UI/UI/Xaml/Documents/TextElement.XamlRoot.cs b/src/Uno.UI/UI/Xaml/Documents/TextElement.XamlRoot.cs new file mode 100644 index 000000000000..f2f59ee277ec --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Documents/TextElement.XamlRoot.cs @@ -0,0 +1,29 @@ +#nullable enable + +using System; +using Uno.UI.DataBinding; +using Uno.UI.Extensions; +using Uno.UI.Xaml.Core; + +namespace Windows.UI.Xaml.Documents; + +public partial class TextElement +{ + private ManagedWeakReference? _visualTreeCacheWeakReference; + + /// + /// Gets or sets the XamlRoot in which this element is being viewed. + /// + public XamlRoot? XamlRoot + { + get => XamlRoot.GetForElement(this); + set => XamlRoot.SetForElement(this, XamlRoot, value); + } + + internal VisualTree? VisualTreeCache + { + get => _visualTreeCacheWeakReference?.IsDisposed == false ? + _visualTreeCacheWeakReference.Target as VisualTree : null; + set => _visualTreeCacheWeakReference = WeakReferencePool.RentWeakReference(this, value); + } +}