Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何更改图表控件中各个列的颜色?_C#_Asp.net - Fatal编程技术网

C# 如何更改图表控件中各个列的颜色?

C# 如何更改图表控件中各个列的颜色?,c#,asp.net,C#,Asp.net,我有一个ascx页面,代码后面的代码如下所示 private void CreateProjectsByRAG() { foreach (ProjectStatistic PR in repository.GetProjectByRAG()) { ProjectsByProjectTypePieChart.Series["series"].Points.AddXY(PR.Name, PR.Value);

我有一个ascx页面,代码后面的代码如下所示

private void CreateProjectsByRAG()
    {
        foreach (ProjectStatistic PR in repository.GetProjectByRAG())
        {
            ProjectsByProjectTypePieChart.Series["series"].Points.AddXY(PR.Name, PR.Value);
        }

        ProjectsByProjectTypePieChart.Titles["Title1"].Text = "Projects by RAG Status";
        ProjectsByProjectTypePieChart.Series["series"].ChartType = SeriesChartType.Column;// Set the Pie width
        ProjectsByProjectTypePieChart.Series["series"].Color = System.Drawing.Color.FromArgb(255, 0, 0);
    }
这将生成一个如下所示的图表

private void CreateProjectsByRAG()
    {
        foreach (ProjectStatistic PR in repository.GetProjectByRAG())
        {
            ProjectsByProjectTypePieChart.Series["series"].Points.AddXY(PR.Name, PR.Value);
        }

        ProjectsByProjectTypePieChart.Titles["Title1"].Text = "Projects by RAG Status";
        ProjectsByProjectTypePieChart.Series["series"].ChartType = SeriesChartType.Column;// Set the Pie width
        ProjectsByProjectTypePieChart.Series["series"].Color = System.Drawing.Color.FromArgb(255, 0, 0);
    }

但是我想分别给列上色,使它们看起来像这样,我还希望列的颜色与它们的标签相同(所以不是随机的)

此外,如何对列进行排序?这样我就可以按绿色、琥珀色、红色的顺序排列代码

foreach (ProjectStatistic PR in repository.GetProjectByRAG())
        {
            int index = ProjectsByProjectTypePieChart.Series["series"].Points.AddXY(PR.Name, PR.Value);
            if (PR.Name == "Green")
            { 
                ProjectsByProjectTypePieChart.Series["series"].Points[index].Color = System.Drawing.Color.Green;
            }

            if (PR.Name == "Amber")
            {
                ProjectsByProjectTypePieChart.Series["series"].Points[index].Color = System.Drawing.Color.Yellow;
            }

            if (PR.Name == "Red")
            {
                ProjectsByProjectTypePieChart.Series["series"].Points[index].Color = System.Drawing.Color.Red;
            }

        }