To reproduce: protected override void OnLoad(EventArgs e) { base.OnLoad(e); radChartView1 = new RadChartView(); radChartView1.Parent = this; this.radChartView1.AreaType = ChartAreaType.Pie; PieSeries series = new PieSeries(); series.DataPoints.Add(new PieDataPoint(50, "Germany")); series.DataPoints.Add(new PieDataPoint(70, "United States")); series.DataPoints.Add(new PieDataPoint(40, "France")); series.DataPoints.Add(new PieDataPoint(25, "United Kingdom")); series.ShowLabels = true; this.radChartView1.Series.Add(series); (series.Children[0] as PiePointElement).RadiusAspectRatio = 1.2f; } Workaround: protected override void OnLoad(EventArgs e) { base.OnLoad(e); radChartView1 = new RadChartView(); radChartView1.Parent = this; this.radChartView1.AreaType = ChartAreaType.Pie; PieSeries series = new PieSeries(); series.DataPoints.Add(new PieDataPoint(50, "Germany")); series.DataPoints.Add(new PieDataPoint(70, "United States")); series.DataPoints.Add(new PieDataPoint(40, "France")); series.DataPoints.Add(new PieDataPoint(25, "United Kingdom")); series.ShowLabels = true; this.radChartView1.Series.Add(series); (series.Children[0] as PiePointElement).RadiusAspectRatio = 1.2f; this.radChartView1.CreateRenderer += new ChartViewCreateRendererEventHandler(radChartView1_CreateRenderer); } void radChartView1_CreateRenderer(object sender, ChartViewCreateRendererEventArgs e) { e.Renderer = new CustomPieRenderer(e.Area as PieArea); } public class CustomPieRenderer : PieRenderer { public CustomPieRenderer(PieArea area) : base(area) { } protected override void Initialize() { base.Initialize(); for (int i = 0; i < this.DrawParts.Count; i++) { PieSeriesDrawPart piePart = this.DrawParts[i] as PieSeriesDrawPart; if (piePart != null) { this.DrawParts[i] = new CustomPieSeriesDrawPart((PieSeries)piePart.Element, this); } } } } class CustomPieSeriesDrawPart : PieSeriesDrawPart { public CustomPieSeriesDrawPart(PieSeries series, IChartRenderer renderer) : base(series, renderer) { } public override void DrawSeriesParts() { //base.DrawSeriesParts(); PieSeriesModel model = this.Element.Model as PieSeriesModel; float diameter = CalculateDiameter(); if (diameter > 0) { DrawPieSegments(model, diameter); } } private float CalculateDiameter() { PieSeriesModel model = this.Element.Model as PieSeriesModel; double diameter = Math.Min((float)model.LayoutSlot.Width, (float)model.LayoutSlot.Height) * ((PieSeries)Element).RadiusFactor; return (float)diameter; } private void DrawPieSegments(PieSeriesModel model, float diameter) { Graphics gr = ((PieRenderer)this.Renderer).Graphics; RadGdiGraphics radGraphics = new RadGdiGraphics(gr); for (int i = 0; i < model.DataPoints.Count; i++) { PiePointElement childElement = (PiePointElement)this.Element.Children[i]; PieDataPoint piePoint = (PieDataPoint)childElement.DataPoint; float finalDiameter = diameter * childElement.RadiusAspectRatio; GraphicsPath path = ConstructGraphicsPath(piePoint, model.LayoutSlot, finalDiameter); UpdatePointPaths(piePoint, path); System.Drawing.RectangleF rect = GetPieSectionRect(piePoint, model.LayoutSlot, finalDiameter); childElement.GradientAngle = (float)(piePoint.StartAngle + piePoint.SweepAngle / 2); FillPrimitiveImpl fill = new FillPrimitiveImpl(childElement, null); fill.PaintFill(radGraphics, path, rect); BorderPrimitiveImpl border = new BorderPrimitiveImpl(childElement, null); border.PaintBorder(radGraphics, null, path, rect); } } protected System.Drawing.RectangleF GetPieSectionRect(PieDataPoint point, RadRect modelLayoutSlot, float diameter) { System.Drawing.RectangleF result; float x = (float)(modelLayoutSlot.X + (modelLayoutSlot.Width - diameter) / 2); float y = (float)(modelLayoutSlot.Y + (modelLayoutSlot.Height - diameter) / 2); result = new System.Drawing.RectangleF(x, y, Math.Max(diameter, 1f), Math.Max(diameter, 1f)); if (point.OffsetFromCenter > 0) { System.Drawing.PointF offset = GetOffset(point.StartAngle + (point.SweepAngle / 2), (diameter / 2) * (point.OffsetFromCenter)); result.X += offset.X; result.Y += offset.Y; } return result; } private System.Drawing.PointF GetOffset(double angle, double radius) { double angleInRad = angle * RadMath.DegToRadFactor; double x = (Math.Cos(angleInRad) * radius); double y = (Math.Sin(angleInRad) * radius); return new System.Drawing.PointF((float)x, (float)y); } }