我使用内置的 .NET 4.0 控件创建了一个 StackedColumn 图表。图表正确显示。不过,我想让它看起来像 3-D。我可以通过使用 XAML 来做到这一点。但是我无法使用后面的代码来做同样的事情。
请看我后面的代码。我有一个图表和一个 ChartArea。我看到启用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;
使用静态数据时,我可以使用 XAML 将“Enable3D”设置为 TRUE:
<chartareas>
<asp:ChartArea Name="Default">
<Area3DStyle Enable3D="True" />
</asp:ChartArea>
</chartareas>
你能告诉我如何使图表启用 3-D 吗?