protected override void Dispose(bool disposing) { if (_disposed) { return; } _disposed = true; if (disposing) { if (Element != null) { Element.PropertyChanged -= OnElementPropertyChanged; } BackgroundManager.Dispose(this); if (_visualElementTracker != null) { _visualElementTracker.Dispose(); _visualElementTracker = null; } if (_visualElementRenderer != null) { _visualElementRenderer.Dispose(); _visualElementRenderer = null; } _spannableString?.Dispose(); _labelTextColorDefault?.Dispose(); if (Element != null) { if (Platform.GetRenderer(Element) == this) { Element.ClearValue(Platform.RendererProperty); } } } base.Dispose(disposing); }