public TextEditRenderBox(
            RootGraphic rootgfx,
            int width, int height,
            bool isMultiLine,
            bool isEditable = true)
            : base(rootgfx, width, height)
        {
            _isEditable = isEditable;

            if (isEditable)
            {
                GlobalCaretController.RegisterCaretBlink(rootgfx);
                //
                _myCaret = new CaretRenderElement(rootgfx, 2, 17);
                _myCaret.TransparentForAllEvents = true;
            }

            RenderBackground = RenderCaret = RenderSelectionRange = RenderMarkers = true;

            //
            MayHasViewport  = true;
            BackgroundColor = Color.White;// Color.Transparent;

            _currentSpanStyle           = new TextSpanStyle();
            _currentSpanStyle.FontColor = Color.Black;//set default
            _currentSpanStyle.ReqFont   = rootgfx.DefaultTextEditFontInfo;

            //
            _textLayer = new EditableTextFlowLayer(this);                               //presentation
            _internalTextLayerController = new InternalTextLayerController(_textLayer); //controller

            _isMultiLine = isMultiLine;
            if (isMultiLine)
            {
                _textLayer.SetUseDoubleCanvas(false, true);
            }
            else
            {
                _textLayer.SetUseDoubleCanvas(true, false);
            }

            NeedClipArea   = true;
            IsBlockElement = false;
            NumOfWhitespaceForSingleTab = 4;//default?, configurable?
        }
        public TextEditRenderBox(
            int width, int height,
            bool isMultiLine,
            bool isEditable = true)
            : base(width, height, isMultiLine)
        {
            _isEditable = isEditable;

            if (isEditable)
            {
                GlobalCaretController.RegisterCaretBlink(GlobalRootGraphic.CurrentRootGfx);
                //
                _myCaret    = new EditorCaret(2, 17);
                RenderCaret = true;
            }

            NumOfWhitespaceForSingleTab = 4;//default?, configurable?
        }