/// <inheritdoc/>
            public IVisual UpdateVisual(IRenderContext context, IVisual oldVisual)
            {
                MyVisual container = oldVisual as MyVisual;

                if (container == null)
                {
                    return(CreateVisual(context));
                }
                var delegateStyle = GetCurrentStyle(label, labelStyle);

                if (container.Left != left || container.Insets != insets || container.Children.Count != 1)
                {
                    return(CreateVisual(context));
                }
                IVisual oldDelegateVisual = container.Children[0];
                IVisual newDelegateVisual = delegateStyle.Renderer.GetVisualCreator(label, delegateStyle).UpdateVisual(context, oldDelegateVisual);

                if (oldDelegateVisual != newDelegateVisual)
                {
                    container.Children[0] = newDelegateVisual;
                }
                container.Insets = insets;
                container.Left   = left;
                return(container);
            }
            /// <inheritdoc/>
            public IVisual CreateVisual(IRenderContext context)
            {
                var container = new MyVisual {
                    Left = left, Insets = insets
                };
                var delegateStyle = GetCurrentStyle(label, labelStyle);

                container.Add(delegateStyle.Renderer.GetVisualCreator(label, delegateStyle).CreateVisual(context));
                return(container);
            }