Изменить цвет выбранной кривой 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;
...
}
После сброса линии выбора все выбранные линии начнут рисоваться, как указано.