2

我绘制这样的图表

LineItem lineItem = new LineItem("label", pointList, Color.Black, SymbolType.Triangle);
lineItem.Line.IsVisible = _graphLineVisible;
zgc.GraphPane.CurveList.Add(lineItem);

我注意到 SymbolType 有一个名为 的枚举元素UserDefined,有没有办法使用它以及如何使用?

理想情况下,我希望能够实现自己的 Symbol 并使用它来绘制 LineItem,这可能吗?我该如何继续这样做?

4

2 回答 2

4

以下是如何根据先前发布的答案创建自定义向下箭头符号的详细说明:

var curve = zgc.GraphPane.AddCurve(null, new[] { 2.1, 2.6, 2.8 }, new[] { 1.8, 1.3, 1.1 }, Color.Blue);

curve.Symbol = new Symbol(SymbolType.UserDefined, Color.Red);
curve.Symbol.UserSymbol = new GraphicsPath(
    new[]
        {
            new PointF(-0.6f, -0.6f), new PointF(-0.6f, 0.6f), new PointF(-1.0f, 0.6f), new PointF(0f, 1.6f), 
            new PointF(1.0f, 0.6f), new PointF(0.6f, 0.6f), new PointF(0.6f, -0.6f),
            new PointF(-0.6f, -0.6f)
        },
    new[]
        {
            (byte)PathPointType.Start, (byte)PathPointType.Line, (byte)PathPointType.Line,
            (byte)PathPointType.Line, (byte)PathPointType.Line, (byte)PathPointType.Line,
            (byte)PathPointType.Line, (byte)PathPointType.Line
        });

运行此代码将产生以下输出:

带有用户定义的向下箭头符号的图形

于 2012-08-09T11:41:33.090 回答
1

我想出了如何将自定义符号与 LineItem 一起使用,这是如何:

Symbol symbol = new Symbol();
symbol.UserSymbol = GetGraphicsPath();
symbol.Size = 5f;

LineItem lineItem = new LineItem("label", pointList, Color.Black, SymbolType.None);     
lineItem.Line.IsVisible = _graphLineVisible; 
lineItem.Symbol = symbol;
zgc.GraphPane.CurveList.Add(lineItem); 

其中 GetGraphicsPath() 返回一个自定义的 GraphicsPath 对象,该对象本质上是使用 GraphicsPath.AddLine 方法或任何其他方法创建的,具体取决于您想要的符号类型。

于 2012-08-09T10:45:27.720 回答