Последние изменения - Поиск:
RSS блога RSS блога

Начало

Блог

Программки

    Google+

Плагины

Программирование

Фото

Контакты

Я в твиттере Я в ЖЖ

Шпаргалка по 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 ();
    }

Вернуться к остальным примерам

Пожалуйста, оцените материал

5 stars Рейтинг 5.0/5. Всего 5 голос(а, ов)



Андрей 26.02.2011 - 21:37

Мерцание

Спасибо за пример!
Подскажите, пожалуйста, каким образом можно избавиться от мерцания всплывающей подсказки?

Jenyay 26.02.2011 - 22:17

Надо будет посмотреть, может быть там можно включить двойную буферизацию.

Андрей 26.02.2011 - 23:44

А есть идеи, с какой стороны подойти? Я бы сам тоже попробовал найти решение...

Jenyay 27.02.2011 - 08:40

Не знаю, будет ли этого достаточно, но можно поиграться с ZedGraphControl.DoubleBuffered.

Андрей 27.02.2011 - 14:08

Что-то я не нахожу такого свойства... rolling eyes smiley

Дмитрий 02.03.2011 - 11:03

подсказки в Web

подскажите, пожалуйста, а можно ли как-то реализовать подсказки при выводе графика на веб-форму?

Jenyay 02.03.2011 - 12:26

Сам я web-программированием с использованием ZedGraph не занимался (да и вообще на ASP.NET), может быть кто-нибудь другой подскажет.

typik 02.03.2011 - 22:23

всплывающая подсказка

Как сделать так, чтобы всплывающая подсказка работала, даже если обрабатываю событие MouseMoveEvent? Или как включить эту всплывающую подсказку самому в других обработчиках.


Подписаться на комментарии
Автор:
Тема:
 Ваш комментарий
 
 
Введите код 312
 
Править - История - Печать - Последние изменения - Поиск
Последняя редакция от 22.06.2011 22:00