protected override Geometry GetOrCreateBoxGeometry(Size renderSize)
        {
            var ellipse = Ellipse.CreateFromSize(renderSize);

            this.SetCurrentValue(EllipseProperty, ellipse);
            if (ellipse.RadiusX <= 0 || ellipse.RadiusY <= 0)
            {
                return(Geometry.Empty);
            }

            if (this.BoxGeometry is EllipseGeometry)
            {
                return(this.BoxGeometry);
            }

            var geometry = new EllipseGeometry();

            geometry.Bind(EllipseGeometry.CenterProperty)
            .OneWayTo(this, EllipseProperty, EllipseCenterConverter.Default);
            geometry.Bind(EllipseGeometry.RadiusXProperty)
            .OneWayTo(this, EllipseProperty, EllipseRadiusXConverter.Default);
            geometry.Bind(EllipseGeometry.RadiusYProperty)
            .OneWayTo(this, EllipseProperty, EllipseRadiusYConverter.Default);
            return(geometry);
        }