using System; namespace Xamarin.Forms.Platform.Tizen { /// /// Renderer of a Layout. /// public class LayoutRenderer : ViewRenderer { bool _isLayoutUpdatedRegistered = false; /// /// Default constructor. /// public LayoutRenderer() { } public void RegisterOnLayoutUpdated() { if (!_isLayoutUpdatedRegistered) { Control.LayoutUpdated += OnLayoutUpdated; _isLayoutUpdatedRegistered = true; } } protected override void OnElementChanged(ElementChangedEventArgs e) { if (null == Control) { var canvas = new Native.Canvas(Forms.Context.MainWindow); SetNativeControl(canvas); } base.OnElementChanged(e); } protected override void Dispose(bool disposing) { if (_isLayoutUpdatedRegistered) { Control.LayoutUpdated -= OnLayoutUpdated; } base.Dispose(disposing); } void OnLayoutUpdated(object sender, Native.LayoutEventArgs e) { DoLayout(e); } } }