我正在制作柱形图,我需要区分黑白格式的列。
我知道如何改变颜色:
mychart.Series["MyName"].Color = Color.MidnightBlue;
但我不知道如何用虚线或点线图案填充列。
简单的解决方案:你可以设置一个BackHatchStyle
,这是一个ChartHatchStyle,例如:
yourSeries.BackHatchStyle = ChartHatchStyle.DarkHorizontal;
这些填充图案就是为了完成这项工作而制作的。结合设置Color
和BackSecondaryColor
,还有更多的变化:
具有4个填充样式和一个自定义填充图案的柱形图。
如您所见,每个数据点可能都有自己的风格。请注意,仅限于枚举中的54个元素,并且不能更改,例如规模。
如果这还不够好,你可以创建一个平铺图像并将其设置为BackImage
,就像我为第三点所做的那样。
为此,您可以使用磁盘中的位图,也可以将动态创建的图像添加到图表的Images
集合中。这将是一个NamedImage
,您设置的名称就是您使用的名称。
例:
Bitmap bmp = new Bitmap(10, 12);
using (Graphics g = Graphics.FromImage(bmp))
using (SolidBrush b1 = new SolidBrush(Color.ForestGreen))
using (SolidBrush b2 = new SolidBrush(Color.Maroon))
{
g.Clear(Color.Silver);
g.FillRectangle(b1, 0, 3, 10, 4);
g.FillRectangle(b2, 0, 9, 10, 3);
chart1.Images.Add(new NamedImage("tile3cols", bmp));
}
现在你可以使用它:
chart1.Series[0].Points[2].BackImage = "tile3cols";
您甚至可以组合两者并使用HatchBrush
加上缩放的Graphics
来更大规模地使用填充图案。