protected override void OnRefresh()
        {
            RectangleFill profileRectangle = Visual as RectangleFill;

            if (profileRectangle != null)
            {
                _fillBrush       = new SolidColorBrush(profileRectangle.FillColor);
                _imageRect.Width = profileRectangle.Width;
                if (profileRectangle.Inverse_direction != true)
                {
                    _imageRect.Y = profileRectangle.Height - (profileRectangle.Height * profileRectangle.FillHeight); // calculate the Y position of the rectangle to draw it from botton to top
                }
                _imageRect.Height = profileRectangle.Height * profileRectangle.FillHeight;

                if (profileRectangle.BorderThickness > 0d)
                {
                    _borderPen = new Pen(new SolidColorBrush(profileRectangle.BorderColor), profileRectangle.BorderThickness);
                }
                else
                {
                    _borderPen = null;
                }
            }
        }
        protected override void OnRender(System.Windows.Media.DrawingContext drawingContext)
        {
            RectangleFill profileRectangle = Visual as RectangleFill;

            drawingContext.DrawRoundedRectangle(_fillBrush, _borderPen, _imageRect, profileRectangle.CornerRadius, profileRectangle.CornerRadius);
        }