如何在MSChart中为黑白打印制作虚线或虚线列

问题描述 投票:3回答:1

我正在制作柱形图,我需要区分黑白格式的列。

我知道如何改变颜色:

mychart.Series["MyName"].Color = Color.MidnightBlue;

但我不知道如何用虚线或点线图案填充列。

c# winforms mschart
1个回答
3
投票

简单的解决方案:你可以设置一个BackHatchStyle,这是一个ChartHatchStyle,例如:

 yourSeries.BackHatchStyle = ChartHatchStyle.DarkHorizontal;

这些填充图案就是为了完成这项工作而制作的。结合设置ColorBackSecondaryColor,还有更多的变化:

enter image description here

具有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来更大规模地使用填充图案。

© www.soinside.com 2019 - 2024. All rights reserved.