如何在使用Razor图表助手创建的图表中更改图表参数(例如饼图切片颜色)?

dom*_*mer 4 asp.net-mvc microsoft-chart-controls razor

我正在按照ASP.NET Razor页面指南在ASP.NET MVC 3视图中生成图表.

我可以生成/显示饼图.但我看不出如何改变饼图幻灯片的颜色 - 或者爆炸切片.

我试图引用Chart对象的"Series"集合,但是没有看到它是一个.

这是我目前的代码片段.

<td>
    @{                
        Chart chart =
            new Chart(width: 100, height: 100)
                .AddSeries(chartType: "Pie", name: "Dafault", xValue: new[] { "Yes", "No" }, yValues: new[] { 70.2m, 29.8m });

        chart.Write();
    }
</td>
Run Code Online (Sandbox Code Playgroud)

有谁能告诉我怎么回事?

Jim*_*ley 5

Dommer,

我在这里只领先一步,但您可以使用Chart的构造函数中的"themePath"属性创建自定义颜色.它没有很好的文档,但是themePath是一个XML文档的路径,它详细描述了图表.您可以通过对主题中的字符串consts(这是Chart的构造函数中的可选第三个参数)执行intellisense来获取XML的示例.

您可以在以下链接中找到对themePath值和示例XML的引用:http: //www.mikepope.com/blog/documents/WebHelpersAPI.html#Chart

现在要自定义颜色.主题文件中的XML在Chart元素中显示Palette属性.将其设置为"无",并添加一个'PaletteCustomColors'属性,其中包含一组RGB值,如下所示:

PaletteCustomColors ='0,0,255; 0,255,0; 255,0,0; 0,255,255; 255,0,255; 255,255,0'

请参阅contsructor中的themePath,如下所示:

string pathName = "~/Content/Test3DTheme.xml";
var chart = new Chart(width: 600, height: 400, themePath: pathName) [add methods here]
Run Code Online (Sandbox Code Playgroud)

这应该做到这一点.另外,似乎主题协议使用了很多属性,这些属性是System.Web.UI.DataVisualization.Chart中的属性.你可以通过调整和添加/删除属性来试验(正如我现在所做),看看会改变图表外观的因素以及会破坏它的内容.解析器对它接受的属性非常苛刻.

希望这可以帮助.

吉姆斯坦利

Blackboard Connect Inc.