protected override Size MeasureOverride(Size constraint) { var contentDesiredSize = base.MeasureOverride(constraint); if (contentDesiredSize.Width == 0 || double.IsInfinity(contentDesiredSize.Width) || contentDesiredSize.Height == 0 || double.IsInfinity(contentDesiredSize.Height)) return contentDesiredSize; _pathGeometry = CreateGeometry(contentDesiredSize); Clip = _pathGeometry; return _pathGeometry.GetRenderBounds(new Pen(PenBrush, 1) { EndLineCap = PenLineCap.Flat, MiterLimit = 1 }).Size; }