asp.net – 如何在MVC 3中设置图表系列颜色?

前端之家收集整理的这篇文章主要介绍了asp.net – 如何在MVC 3中设置图表系列颜色?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在用着

System.Web.Helpers.Chart

在我的MVC3应用程序中显示图表.

@{
    var myChart = new Chart(width: 600,height: 400)
        .AddTitle("Resource Utilization in Projects in Week 1")
        .AddSeries(
            name: "Project1",chartType: "StackedColumn",xValue: new[] { "W1","W2","W3","W4","W5" },yValues: new[] { 80,60,40,20,10}
        )
        .AddSeries(
            name: "Project2",yValues: new[] { 10,10,10 }
        )
        .AddSeries(
            name: "Available",yValues: new[] { "10","30","50","70","80" }
        )
        .AddLegend();        

        myChart.Write();
}

然而,系列的颜色由图表上有多少系列随机挑选.有没有人知道如何设定特定系列的特定颜色?

我在线发现Charting样本来设置颜色,但是它们正在使用命名空间

System.Web.UI.DataVisualization.Charting

解决方法

如果要自定义图表,则需要创建ChartTheme.不幸的是,这些看起来有点黑客…

例如.尝试设置这样的主题

var myChart = new Chart(width: 600,height: 400,theme: ChartTheme.Green)

你会注意到你的图表看起来不一样.如果您点击ChartTheme.Green,然后按F12(转到定义),您将看到ChartTheme类中有大量字符串,用于定义图表的风格:

public const string Blue = @"<Chart BackColor=""#D3DFF0"" BackGradientStyle=""TopBottom"" BackSecondaryColor=""White"" BorderColor=""26,59,105"" BorderlineDashStyle=""Solid"" BorderWidth=""2"" Palette=""BrightPastel"">
    <ChartAreas>
        <ChartArea Name=""Default"" _Template_=""All"" BackColor=""64,165,191,228"" BackGradientStyle=""TopBottom"" BackSecondaryColor=""White"" BorderColor=""64,64,64"" BorderDashStyle=""Solid"" ShadowColor=""Transparent"" /> 
    </ChartAreas>
    <Legends>
        <Legend _Template_=""All"" BackColor=""Transparent"" Font=""Trebuchet MS,8.25pt,style=Bold"" IsTextAutoFit=""False"" /> 
    </Legends>
    <BorderSkin SkinStyle=""Emboss"" /> 
  </Chart>";

你可以在这个XML中定制大量的东西(为什么XML?我不知道!),尽管你使用的图表类型会影响你可以做的许多工作.您可以在这里找到文档:

http://msdn.microsoft.com/en-us/library/dd456696.aspx

编辑:此链接也可能有用:

New asp.net charting controls – will they work with MVC (eventually)?

原文链接:https://www.f2er.com/aspnet/246102.html

猜你在找的asp.Net相关文章