protected override Size ArrangeOverride(Size finalSize) { var minMax = this.GetMinMax(); var arrangeSize = finalSize .AtLeast(minMax.min) .AtMost(minMax.max); var cx = arrangeSize.Width / 2; var cy = arrangeSize.Height / 2; var strokeThickness = ActualStrokeThickness; _ellipse.SetAttribute( ("cx", cx.ToStringInvariant()), ("cy", cy.ToStringInvariant()), ("rx", (cx - strokeThickness).ToStringInvariant()), ("ry", (cy - strokeThickness).ToStringInvariant())); return(base.ArrangeOverride(finalSize)); }