MSChart: 饼图标签重叠问题

5

我在我的一个VB.NET项目中使用了MSChart控件。我决定将下表中的数据显示为饼图。

enter image description here

但是标签会相互重叠,为了解决这个问题,我尝试了以下“智能标签”属性:

Chart1.Series("Default").SmartLabelStyle.Enabled = True
Chart1.Series("Default").SmartLabelStyle.AllowOutsidePlotArea = LabelOutsidePlotAreaStyle.No

Chart1.Series("Default").SmartLabelStyle.CalloutLineAnchorCapStyle = LineAnchorCapStyle.None

Chart1.Series("Default").SmartLabelStyle.CalloutLineColor = Color.Red

Chart1.Series("Default").SmartLabelStyle.CalloutLineWidth = 1
Chart1.Series("Default").SmartLabelStyle.CalloutStyle = LabelCalloutStyle.None

但是它并没有帮助我...尽管它按照以下屏幕截图显示了输出。

enter image description here

我应该使用哪些属性来摆脱它?......

编辑:

如果我设置自定义属性PieLabelStyle=Outside,它并没有任何区别,如下面的屏幕截图所示。

enter image description here

请帮助我。


https://dev59.com/MXI95IYBdhLWcg3wzRTv#19782813 - Raheel
2个回答

17

将PieLabelStyle CustomSettings更改为Outside。这应该会将所有标签放置在图表周围,并用线指向相关部分。

适用于VB。

Chart1.Series(0)("PieLabelStyle") = "Outside"
Chart1.ChartAreas(0).Area3DStyle.Enable3D = true
Chart1.ChartAreas(0).Area3DStyle.Inclination = 10

适用于C#

Chart1.Series[0]["PieLabelStyle"] = "Outside";
Chart1.ChartAreas[0].Area3DStyle.Enable3D = true;
Chart1.ChartAreas[0].Area3DStyle.Inclination = 10;

我已经按照你告诉我的方式设置了该属性...但正如你从我的更新问题中所看到的,它并没有产生任何区别。非常感谢您的回复... - Pritesh
尝试将代码更改为我的更新答案。如果您仍希望图表看起来是2D的,那么XAngle属性很可能可以更改为0,但我还没有测试的机会。 - APrough
这个对我起作用,除了我看不到XAngle属性。 - nuander
我不确定XAngle属性是从哪里来的。看起来你可能要找的属性是Inclination而不是XAngle?编辑:看起来XAngle属性与Dundas图表控件有关,这是新控件的旧版本。我把它们搞混了。对于造成的困惑,我很抱歉。 - APrough
只是一个提示,您可以使用InnerPlotPosition属性来帮助调整图表的大小,以便连接标签的线条不会被截断。 Chart1.ChartAreas [0] .InnerPlotPosition.Auto = true; - ScottLenart
我刚刚让它工作了 - 对于那些不感兴趣的3D,你可以将X旋转和Y旋转[X角度和Y角度,我猜]设置为0。 - marifrahman

0

我尝试了使用Visual Studio设计器以及在代码中设置上述指令,但都没有起作用。

在Visual Studio设计器中,转到Series1->CustomProperties。您可以展开CustomProperties并根据图表类型设置单个属性。但在CustomProperties的第一行中,有一个文本表示自定义属性设置为单个字段。由于我的图表是从其他ChartType转换而来的,因此包含了这些属性的第一行自定义属性,但这些属性不适用于Pie。这就是未能遵守CustomProperties设置的原因。我手动删除了CustomProperties的第一行...

PieLabelStyle = Outside

然后开始工作!所有标签都变得可读。我认为这是Chart设计器的一个错误。更改ChartType时,它应自动清除旧的CustomProperties。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接