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

我知道如何改变颜色:

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

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

最佳答案

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

 yourSeries.BackHatchStyle = ChartHatchStyle.DarkHorizontal;

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

c# - 如何在 MSChart 中制作用于黑白打印的虚线或虚线列-LMLPHP

具有 4 种剖面线样式和一种自定义填充图案的柱状图。

正如你所看到的 每个数据点可能有自己的风格 。请注意,afaik 您仅限于枚举中的 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 以在更大的范围内使用填充图案。

关于c# - 如何在 MSChart 中制作用于黑白打印的虚线或虚线列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54864773/

10-13 06:11