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

时间:2011-01-16 17:08:14

标签: asp.net-mvc razor microsoft-chart-controls

我在ASP.NET MVC 3视图中关注ASP.NET Razor Pages guide to generate charts

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

我试图引用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>

有谁能告诉我我该怎么做?

2 个答案:

答案 0 :(得分: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]

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

希望这有帮助。

Jim Stanley

Blackboard Connect Inc.

答案 1 :(得分:1)

您正在使用System.Web.Helpers命名空间下的Charting。您需要在System.Web.UI.DataVisualization命名空间下提供完整的图表组件。 这是开始的链接 Charting with MVC 以下是如何使用完整的图表功能和交互性的链接。 Charting with interactivity