Шпаргалка по ZedGraph. Как использовать всплывающие подсказки
В этом примере показано как включить отображение всплывающей подсказки при наведении курсора на кривую, а также как можно изменять текст этой всплывающей подсказки.
Все примеры объединены в одном solution для Visual Studio 2005 и написаны на языке C#, скачать их можно отсюда.
Проект в примере - PointValues
public partial class Form1 : Form
{
public Form1 ()
{
InitializeComponent ();
// Включим показ всплывающих подсказок при наведении курсора на график
zedGraph.IsShowPointValues = true;
// Будем обрабатывать событие PointValueEvent, чтобы изменить формат представления координат
zedGraph.PointValueEvent +=
new ZedGraphControl.PointValueHandler (zedGraph_PointValueEvent);
DrawGraph ();
}
/// <summary>
/// Обработчик события PointValueEvent.
/// Должен вернуть строку, которая будет показана во всплывающей подсказке
/// </summary>
/// <param name="sender">Отправитель сообщения</param>
/// <param name="pane">Панель для рисования</param>
/// <param name="curve">Кривая, около которой находится курсор</param>
/// <param name="iPt">Номер точки в кривой</param>
/// <returns>Нужно вернуть отображаемую строку</returns>
string zedGraph_PointValueEvent (ZedGraphControl sender,
GraphPane pane,
CurveItem curve,
int iPt)
{
// Получим точку, около которой находимся
PointPair point = curve[iPt];
// Сформируем строку
string result = string.Format ("X: {0:F3}\nY: {1:F3}", point.X, point.Y);
return result;
}
private double f (double x)
{
if (x == 0)
{
return 1;
}
return Math.Sin (x) / x;
}
private void DrawGraph ()
{
// Получим панель для рисования
GraphPane pane = zedGraph.GraphPane;
// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
pane.CurveList.Clear ();
// Создадим список точек
PointPairList list = new PointPairList ();
double xmin = -50;
double xmax = 50;
// Заполним список точек
for (double x = xmin; x <= xmax; x += 0.01)
{
// Добавим в список точку
list.Add (x, f (x));
}
// Создадим кривую с названием "Sinc",
// которая будет рисоваться голубым цветом (Color.Blue),
// Опорные точки выделяться не будут (SymbolType.None)
LineItem myCurve = pane.AddCurve ("Sinc", list, Color.Blue, SymbolType.None);
// Вызываем метод AxisChange (), чтобы обновить данные об осях.
// В противном случае на рисунке будет показана только часть графика,
// которая умещается в интервалы по осям, установленные по умолчанию
zedGraph.AxisChange ();
// Обновляем график
zedGraph.Invalidate ();
}
{
public Form1 ()
{
InitializeComponent ();
// Включим показ всплывающих подсказок при наведении курсора на график
zedGraph.IsShowPointValues = true;
// Будем обрабатывать событие PointValueEvent, чтобы изменить формат представления координат
zedGraph.PointValueEvent +=
new ZedGraphControl.PointValueHandler (zedGraph_PointValueEvent);
DrawGraph ();
}
/// <summary>
/// Обработчик события PointValueEvent.
/// Должен вернуть строку, которая будет показана во всплывающей подсказке
/// </summary>
/// <param name="sender">Отправитель сообщения</param>
/// <param name="pane">Панель для рисования</param>
/// <param name="curve">Кривая, около которой находится курсор</param>
/// <param name="iPt">Номер точки в кривой</param>
/// <returns>Нужно вернуть отображаемую строку</returns>
string zedGraph_PointValueEvent (ZedGraphControl sender,
GraphPane pane,
CurveItem curve,
int iPt)
{
// Получим точку, около которой находимся
PointPair point = curve[iPt];
// Сформируем строку
string result = string.Format ("X: {0:F3}\nY: {1:F3}", point.X, point.Y);
return result;
}
private double f (double x)
{
if (x == 0)
{
return 1;
}
return Math.Sin (x) / x;
}
private void DrawGraph ()
{
// Получим панель для рисования
GraphPane pane = zedGraph.GraphPane;
// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
pane.CurveList.Clear ();
// Создадим список точек
PointPairList list = new PointPairList ();
double xmin = -50;
double xmax = 50;
// Заполним список точек
for (double x = xmin; x <= xmax; x += 0.01)
{
// Добавим в список точку
list.Add (x, f (x));
}
// Создадим кривую с названием "Sinc",
// которая будет рисоваться голубым цветом (Color.Blue),
// Опорные точки выделяться не будут (SymbolType.None)
LineItem myCurve = pane.AddCurve ("Sinc", list, Color.Blue, SymbolType.None);
// Вызываем метод AxisChange (), чтобы обновить данные об осях.
// В противном случае на рисунке будет показана только часть графика,
// которая умещается в интервалы по осям, установленные по умолчанию
zedGraph.AxisChange ();
// Обновляем график
zedGraph.Invalidate ();
}
Вернуться к остальным примерам
Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.