设置“;Enable3D”;“;图表区域”;在StackedColumn图表的代码隐藏中

本文关键字:代码 隐藏 设置 区域 Enable3D StackedColumn | 更新日期: 2023-09-27 18:27:10

我使用内置的.NET 4.0控件创建了一个StackedColumn图表。图表显示得不错。不过我想让它看起来是三维的。我可以通过使用XAML来做到这一点。但我无法使用代码实现同样的功能。

请看后面的代码。我有一个图表和一个图表区。我看到启用3-D的代码如下:

Chart1.ChartAreas["Default"].Area3DStyle.Enable3D = true;

但我在运行时遇到一个错误,如下所示:索引超出范围。必须是非负数并且小于集合的大小。参数名称:索引

我还尝试使用以下选项(其中cArea是ChartArea的实例):

cArea.Area3DStyle.Enable3D = true;
Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true;
Chart1.ChartAreas[0].Area3DStyle.Enable3D = true;

我设置这些属性的位置有什么不同吗。在添加Chart1元素之前,我尝试了上面的3个语句。

我使用的代码是:

        Chart1.Series.Clear();
        Chart1.ChartAreas.Clear();
        ChartArea cArea = new ChartArea("Default");
        Chart1.ChartAreas.Add(cArea);
        // ABLE TO USE cArea to change properties.... !!!
        cArea.AxisX.LabelStyle.Angle = +80;
        cArea.AxisX.LabelStyle.Interval = 1;
        cArea.BackColor = Color.Beige;

        foreach (var g in groups)
        {
            Series s1 = new Series(g.Key);
            Chart1.Series.Add(s1);
            s1.ChartType = SeriesChartType.StackedColumn;
            s1["PointWidth"] = "0.7";
            foreach (var m in g)
            {
                s1.Points.AddXY(m.Category, m.Count);
            }
            s1.IsValueShownAsLabel = true;
            s1.ToolTip = "#VALY";
        }

        this.Controls.Add(Chart1);

XAML是:

<asp:Chart ID="Chart1" runat="server" ImageLocation="~/FolderLoc/Chart_#SEQ(1000,0)"     ImageStorageMode="UseImageLocation" ImageType="Png" >
</asp:Chart>

然而,我可以使用cArea来更改其他属性,作为我的图表的一部分,如代码所示:

// ABLE TO USE cArea to change properties.... !!!
cArea.AxisX.LabelStyle.Angle = +80;
cArea.AxisX.LabelStyle.Interval = 1;
cArea.BackColor = Color.Beige;

当使用静态数据时,我可以将"Enable3D"设置为TRUE,XAML为:

   <chartareas>
       <asp:ChartArea Name="Default">
           <Area3DStyle Enable3D="True" />
       </asp:ChartArea>
   </chartareas>

你能告诉我如何启用图表的三维功能吗?

设置“;Enable3D”;“;图表区域”;在StackedColumn图表的代码隐藏中

要尝试两件事:

Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true;
Chart1.ChartAreas[0].Area3DStyle.Enable3D = true;

您在X轴上有空数据。使用AlignDataPointsByAxis解决此问题。