.NET веб-шоу расширенный всплывающий на Chart Control Наведите курсор мыши

На линейной диаграмме.NET C# для маркера Every Empty Point я хочу отображать всплывающее окно, когда пользователь наводит курсор мыши на маркер.

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

Буду благодарен за любой совет!

1 ответ

Решение

MsCharts генерирует наложение карты (набор областей карты) на диаграмме, которую можно настроить для получения пользовательских событий при наведении курсора. Диаграмма выставляет CustomizeMapAreas событие, на которое вы можете подписаться так:

    protected void BindMapAreaEventHandlers()
    {
        this.CustomizeMapAreas += new EventHandler<CustomizeMapAreasEventArgs>(CustomizeMapAreasHandler);
    }

    private void CustomizeMapAreasHandler(object sender, CustomizeMapAreasEventArgs e)
    {
    }

Теперь позвони BindMapAreaEventHandlers() функция во время инициализации графика и поставить логику, которая отображает всплывающее окно при наведении CustomizeMapAreasHandlerгде вы можете перебирать все элементы карты, сгенерированные для графика.

private void CustomizeMapAreasHandler(object sender, CustomizeMapAreasEventArgs e)
{
    foreach (MapArea item in e.MapAreaItems)
    {
        // any custom logic to change onHover for MapArea.
    }
}

Чтобы все области карты были сгенерированы правильно, я рекомендую настроить ненулевые всплывающие подсказки для всех рядов при добавлении рядов на диаграмму, а затем изменить их обратно на ноль в CustomizeMapAreasHandler. Этот простой трюк сообщает MsCharts, что области карты для всех серий важны, в противном случае они будут создавать области карты только для легенды.

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