Настроить тип символа ZedGraph LineItem

Я строю график, как это

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

Я заметил, что SymbolType имеет элемент enum с именем UserDefined, есть ли способ использовать это и как?

В идеале я хотел бы иметь возможность реализовать свой собственный Symbol и использовать его для рисования LineItem, возможно ли это и как я могу продолжать это делать?

2 ответа

Решение

Вот подробная иллюстрация того, как создавать пользовательские символы со стрелками вниз, в соответствии с ранее опубликованным ответом:

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
        });

Запуск этого кода приведет к следующему выводу:

График с пользовательскими стрелками вниз

Я понял, как использовать пользовательские символы вместе с 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 или любой другой метод, в зависимости от того, какой символ вы хотите.

Другие вопросы по тегам