Как установить расстояние срезов в разнесенной круговой диаграмме (.NET Charting)

Как указать разрыв или расстояние между срезами (или между началом координат) в разнесенных круговых диаграммах в.NET-диаграммах?

Есть ли собственность или взлом?

3 ответа

Это уже спрашивали здесь, и ответ - нет, нет пути - нет хаков.

Вы можете использовать портированную версию .net5 и изменить исходный код PieChart.cs, начиная со строки #840:

                      // Find Direction to move exploded pie slice
            if( exploded )
            {
                _sliceExploded = true;
                midAngle = ( 2 * startAngle + sweepAngle ) / 2;
                double xComponent = Math.Cos( midAngle * Math.PI / 180 ) * rectangle.Width / 10;
                double yComponent = Math.Sin( midAngle * Math.PI / 180 ) * rectangle.Height / 10;

                rectangle.Offset( (float)xComponent, (float)yComponent );
            }

и измените x-yComponent, чтобы получить ожидаемый результат, например:

      double xComponent = Math.Cos( midAngle * Math.PI / 180 ) * 1;
double yComponent = Math.Sin( midAngle * Math.PI / 180 ) * 1;

обращая внимание на положение метки точки тоже ...

С уважением, Анджело

Нет способа сделать это, но есть альтернатива для 2D круговых диаграмм без рамки на серии и одноцветного фона: просто установите ширину границы и свойства цвета серии, чтобы иметь желаемый размер и тот же цвет, что и фон.

Как это:

Chart1.Series[0].BorderWidth = 3;
Chart1.Series[0].BorderColor = System.Drawing.Color.White;

Внутренние части срезов будут иметь тот же цвет, что и фон, создавая впечатление, что эти срезы взорваны. Недостатком является то, что очень маленькие кусочки исчезнут.

Вы можете оставить точки взрыва, если вы хотите увеличить расстояние, но если вы хотите уменьшить расстояние взрыва, вам придется удалить взрыв.

Другие вопросы по тегам