0

如何在 .NET 图表的分解饼图中指定切片之间(或原点之间)的间隙或距离?

有任何财产或黑客吗?

4

3 回答 3

0

之前已经问过这个问题,答案是否定的,没有办法 - 没有黑客。

于 2013-08-04T14:22:40.037 回答
0

您可以使用.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;

注意point.label的位置...

问候,安吉洛

于 2021-05-21T13:41:59.297 回答
0

没有办法做到这一点,但是对于系列上没有边框和单色背景的 2D 饼图有另一种选择:只需将系列的边框宽度和颜色属性设置为具有所需的大小和相同的颜色的背景。

像这样:

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

它将使切片的内部部分与背景颜色相同,给人以这些切片已爆炸的印象。缺点是它会使非常小的切片消失。

如果你想增加距离,你可以让点爆炸,但如果你想减少爆炸距离,你必须移除爆炸。

于 2016-02-28T03:23:54.977 回答