C# 如何在图表内部和外部添加标签

C# 如何在图表内部和外部添加标签,c#,winforms,charts,C#,Winforms,Charts,我想在饼图的内部和外部添加标签 我尝试过给它添加值,它在内部或外部工作。 我想在图表上同时显示VALX和VALY 我该怎么做 我希望我的图表显示如下。 XmlNodeList xnList=xml.SelectNodes(“/Report/Parameters/Parameter”); var chart=新图表(); 图表高度=600; 图表宽度=900; ArrayList xAxisData=新的ArrayList(); ArrayList yAxisData=新的ArrayList()

我想在饼图的内部和外部添加标签

我尝试过给它添加值,它在内部或外部工作。 我想在图表上同时显示VALX和VALY 我该怎么做

我希望我的图表显示如下。

XmlNodeList xnList=xml.SelectNodes(“/Report/Parameters/Parameter”);
var chart=新图表();
图表高度=600;
图表宽度=900;
ArrayList xAxisData=新的ArrayList();
ArrayList yAxisData=新的ArrayList();
字符串标题=“运动”;
图表.标题.添加(标题);
var chartArea1=新的ChartArea();
chart.ChartAreas.Add(chartArea1);
chart.ChartAreas[0]。AlignmentStyle=AreaAlignmentStyles.All;
系列1;
xAxisData.Clear();
yAxisData.Clear();
字符串seriesName1=“”;
字节ColorIndex=0;
系列1=新系列();
seriesName1=“饼图”;
series1.Name=seriesName1;
series1.ChartType=SerieChartType.Pie;
图.系列.添加(系列1);
chart.ChartAreas[0].Area3DStyle.Enable3D=true;
chart.ChartAreas[0].Area3DStyle.倾斜度=40;
chart.ChartAreas[0]。BorderColor=Color.Black;
chart.ChartAreas[0].Area3DStyle.WallWidth=20;
图表系列[seriesName1][“3DLabelLineSize”]=“30”;
chart.Series[seriesName1].IsVisibleInLegend=false;
foreach(T_NewChart.parameters中的KeyValuePair对)
{
chart.Series[seriesName1].Points.AddXY((pair.Value.Name)、pair.Value.Values[0]);
如果(ColorIndex==0)
{
chart.Series[seriesName1]。点[0]。颜色=颜色。绿色;
chart.Series[seriesName1].Label=“#VALX”;
图表系列[seriesName1][“PieLabelStyle”]=“外部”;
chart.Series[seriesName1].BorderColor=Color.Black;
chart.Series[seriesName1]。点数[0]。Label=“Total”;
chart.Series[0].Font=新系统.Drawing.Font(“Arial”,15F);
}
else if(ColorIndex==1)
{
chart.Series[seriesName1]。点[1]。颜色=颜色。黄色;
chart.Series[seriesName1]。点[1]。Label=“非”;
}
else if(ColorIndex==2)
{
chart.Series[seriesName1]。点[2]。颜色=颜色。红色;
chart.Series[seriesName1]。点[2]。Label=“很少”;
}
彩色索引++;
}
chart.SaveImage(“C:\\NewPie\u chart.png”,ChartImageFormat.png);

我只能显示“名称”,但我想在图表外部显示“名称”(VALX),在图表内部显示“值”(VALY)。

缺少一个
在第3行和第1行
foreach
中的第一行太多。我认为这是不受支持的。您可能需要添加批注..缺少
在第3行和第1行
foreach
中的第一行太多。我认为这是不受支持的。您可能需要添加批注。。
XmlNodeList xnList = xml.SelectNodes("/Report/Parameters/Parameter");

var chart = new Chart();
chart.Height = 600;
chart.Width = 900;
ArrayList xAxisData = new ArrayList();
ArrayList yAxisData = new ArrayList();
string title = "Motility";
chart.Titles.Add(title);

var chartArea1 = new ChartArea();
chart.ChartAreas.Add(chartArea1);
chart.ChartAreas[0].AlignmentStyle = AreaAlignmentStyles.All;
Series series1;
xAxisData.Clear();
yAxisData.Clear();

string seriesName1 = " ";
byte ColorIndex = 0;
series1 = new Series();
seriesName1 = "Pie Chart";
series1.Name = seriesName1;
series1.ChartType = SeriesChartType.Pie;
chart.Series.Add(series1);
chart.ChartAreas[0].Area3DStyle.Enable3D = true;
chart.ChartAreas[0].Area3DStyle.Inclination = 40;
chart.ChartAreas[0].BorderColor = Color.Black;
chart.ChartAreas[0].Area3DStyle.WallWidth = 20;
chart.Series[seriesName1]["3DLabelLineSize"] = "30";
chart.Series[seriesName1].IsVisibleInLegend = false;

foreach (KeyValuePair<string, ReportParameter> pair in T_NewChart.parameters)
{
    chart.Series[seriesName1].Points.AddXY((pair.Value.Name), pair.Value.Values[0]));

    if (ColorIndex == 0)
    {
        chart.Series[seriesName1].Points[0].Color = Color.Green;
        chart.Series[seriesName1].Label = "#VALX";
        chart.Series[seriesName1]["PieLabelStyle"] = "Outside";
        chart.Series[seriesName1].BorderColor = Color.Black;
        chart.Series[seriesName1].Points[0].Label = "Total";
        chart.Series[0].Font = new System.Drawing.Font("Arial", 15F);
    }
    else if (ColorIndex == 1)
    {
        chart.Series[seriesName1].Points[1].Color = Color.Yellow;
        chart.Series[seriesName1].Points[1].Label = "Non";

    }
    else if (ColorIndex == 2)
    {
        chart.Series[seriesName1].Points[2].Color = Color.Red;
        chart.Series[seriesName1].Points[2].Label = "Few";
    }
    ColorIndex++;

}
chart.SaveImage("C:\\NewPie_chart.png", ChartImageFormat.Png);