声明:本CSDN博客中的所有文章均为本人原创 请勿转载
2009-12-25
今天看下一个例子。位置是: Chart Types->Bar and Column Charts 下的 3D Bar and Column Charts.
这个例子是以 3D 形式显示一个 Bar 或者 Colum 数据。这很简单,将该 chartArea 的 Enable3D 属性设为 true 就行了。
首先打开代码,很明显我们得重新认识 ChartArea 节点(或者类)。
ChartArea 是一个类,刚开始我们把它想象为一个画布,上面画了 X 轴和 Y 轴。并且发现它是 Chart 控件的 chartareas 的一个子节点。根据我们对服务器在页面的标签原理可以猜测出这些标签在后台会生成对应的对象,实事的确如此, chartareas 是一个集合,里面是 chartarea 对象,就像 UML 中定义的类关系, chartarea 又由 axisy 和 sxisx 类组成。它们是一种组合关系。因此,当你设置一个 X 轴的样式时,首先从 chart 对象访问到 chartareas 集合,再访问到要找的 chartarea, 最后才能访问到 X 轴。好像说远了,先看 chartarea 类的成员吧。
在文档中有这样一句话, The number of chart series that can be plotted in a chart area is unlimited. 它的意思是说一系列的图表中的数据区域( chart area )的数量是不受限制的。这回到了我们原来曾经放置的一个问题:当数据中有多个“画布”时是一种什么状态?事实上在这张生成的图片上就会出现多个面积区域用来显示一个系列的数据。如果你向这个集合再添加一个区域的话,生成了两个区域,但是可能你添加的那个区域没有数据。所以,你得向 series 集合添加它对应的系列。然后将这个 Series 显示区域指定到这个 chartarea 上。
最后一句话特别重要。因为以前没有说过: Chart 类同样有一个 Series 集合,我们知道集合中的对象维护着一组数据,原来都是设置好 series 中的数据 point ,然后就显示到页面上了,你可能一直以为多个 series 会显示在一起,前面已经见过了。 但如果有多个 chartare 时 chart 怎么知道那个 series 对应的是那个 chartare 呢?你可能留意到了, series 有一个属性: ChartArea 用来指定需要显示在什么区域中。
现在回过头来再看 chartare 类的成员:
组成成员:
Area3DStyle : 3D 样式
AxisX : X 轴对象
AxisX2 :顶层的 X 轴。由于 are 是一个距形区,它有四条边,上面的水平线就是 X2 轴。 Y 轴同理,左竖线是 Y 轴,右竖线是 Y2.
AxisY :(略)
AxisY2 :(略)
样式属性:
AlignmentOrientation :设置区域调整方向
AlignmentStyle :对齐方式
AlignWithChartArea :
BackColor :背景颜色。
BackGradientStyle :设置背景渐变或梯度方向。
BackHatchStyle :设置阴影。
BackImage :背景图片。
BackImageAlignment :直线方式显示背景图。
BackImageWrapMode :背景绘制模式设置
BackSecondaryColor :背景合成色。
BorderColor :边框色
BorderDashStyle :边框样式。
BorderWidth :边框宽度。
IsSameFontSizeForAllAxes :
Name :对象命名。
Position :定位
ShadowColor :阴影色
Visible :可见性。
现在看 Chart Types->Bar and Column Charts 下的 3D cylinder chart
这个例子没什么特点,以前见过设置 series 的默认显示样式。
下面的代码是设置