【问题标题】:How to make dashed or dotted columns for b&w printing in an MSChart如何在 MSChart 中为黑白打印制作虚线或虚线列
【发布时间】:2019-02-25 11:04:22
【问题描述】:

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

我知道如何改变颜色:

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

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

【问题讨论】:

标签: c# winforms mschart


【解决方案1】:

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

 yourSeries.BackHatchStyle = ChartHatchStyle.DarkHorizontal;

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

具有 4 种填充样式和一种自定义填充模式的柱形图。

如您所见,每个数据点都可能有自己的风格。请注意,afaik 您仅限于枚举中的 54 元素,并且无法更改,例如规模。


如果这还不够好,您可以创建一个平铺图像并将其设置为 BackImage,就像我在第 3 点所做的那样。

为此,您可以或者使用磁盘中的位图您可以将动态创建的图像添加到图表的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 以在更大的比例上使用填充图案..

【讨论】:

  • 我永远不会做这样的定制解决方案))))
  • 呵呵。顺便说一句:我冒昧地对您的帖子进行了一些改进,以便更容易找到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 2011-09-05
  • 2021-01-24
  • 1970-01-01
  • 2022-11-08
相关资源
最近更新 更多