Изменить цвет выбранной кривой zedgraph

На панели ZedGraph можно установить CurveItem как "выбранный".

zedGraphControl.GraphPane.CurveList[0].IsSelected = true;
zedGraphControl.Refresh();

Это изменит свой цвет на Color.Gray насколько я вижу.

Можно ли изменить этот цвет выбранного состояния?

2 ответа

Решение

Я не знаю такого свойства, но вы можете сделать это, вручную переопределив событие MouseClick объекта ZedGraphControl и установив цвет "выбранного" CurveItem, что-то вроде:

private void zedGraphControl1_MouseClick(object sender, MouseEventArgs e)
    {
        foreach (var curve in zedGraphControl1.GraphPane.CurveList)
        {
            curve.Color = Color.Black;
        }

        CurveItem nearestItem;
        int nearestPoint;
        zedGraphControl1.GraphPane.FindNearestPoint(e.Location, out nearestItem, out nearestPoint);
        if (nearestItem != null)
        {
            nearestItem.Color = Color.Red;
        }
        zedGraphControl1.Refresh();
    }

ОБНОВЛЕНИЕ: Глядя на исходный код http://www.opensourcejavaphp.net/csharp/zedgraph/Line.cs.html и http://www.opensourcejavaphp.net/csharp/zedgraph/Selection.cs.html кажется, что Line.DrawCurve использует статическое свойство Selection.Line. Без изменения источника было бы трудно изменить это поведение.

Часть Line.cs:

public void DrawCurve( Graphics g, GraphPane pane, CurveItem curve, float scaleFactor )
{
    Line source = this;
    if ( curve.IsSelected )
        source = Selection.Line;

Selection.cs:

/// The <see cref="Line" /> type to be used for drawing "selected"
/// <see cref="LineItem" /> and <see cref="StickItem" /> types
 /// </summary>
public static Line Line = new Line( Color.Gray );

Выбранная строка является статическим свойством, но НЕ доступна только для чтения. Можно изменить формат, сбросив свойство Selection.Line:

public Form1()
{
   InitializeComponent();
   ZedGraph.Selection.Line.Width = 3;
   ZedGraph.Selection.Line.Color = Color.Red;
   ...
}

После сброса линии выбора все выбранные линии начнут рисоваться, как указано.

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