Я исчерпывающе воспользовался поиском, но не смог найти удовлетворительного решения своей проблемы.
Я запрограммировал визуализацию данных с помощью диаграммы (datavisualization.charting.chart).Эта диаграмма постоянно меняется, так как показывает некоторые результаты моделирования.Я хотел бы нарисовать, например, линию на графике (в зависимости от положения мыши), чтобы показать контекстно-зависимую информацию.
Поэтому я попробовал две реализации, ни одна из них не работает точно так, как мне бы хотелосьto:
plotLine вызывается в MouseMove - событие
gGraph создается из нижележащего графа с помощью: chartCreateGraphics ();
protected void plotLine(object sender, System.EventArgs e)
{
if (this.chart.Series.Count > 0) //ensure that the chart shows data
{
plotChart(); // this plots the underlying chart
penGraph = new Pen(Color.Black);
Point point1 = new Point(Form1.MousePosition.X - chart.Location.X, 0);
Point point2 = new Point(Form1.MousePosition.X - chart.Location.X,
chart.Location.Y + chart.Size.Height);
gGraph.DrawLine(penGraph, point1, point2);
penGraph.Dispose();
}
}
Здесь линия исчезает каждый раз сразу после построения графика, но должна оставаться до тех пор, пока мышь не перемещается.
protected void plotLine(object sender, System.EventArgs e)
{
penGraph = new Pen(Color.Black);
Point point1 = new Point(Form1.MousePosition.X - chart.Location.X, 0);
Point point2 = new Point(Form1.MousePosition.X - chart.Location.X,
chart.Location.Y + chart.Size.Height);
gGraph.DrawLine(penGraph, point1, point2);
penGraph.Dispose();
}
Здесь все нанесенные линии остаются на графической поверхности до тех пор, пока график не будет нанесен новым.(для указания положения мыши должна остаться только последняя строка)
Кто-нибудь может мне помочь?