Предварительный просмотр при наведении курсора на панель вместо точки данных в диаграмме StackedColumn - PullRequest
0 голосов
/ 03 февраля 2011

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

Это заставит каждую серию в столбце выполнять наведение мыши / мышью.Я бы хотел, чтобы для колонки было сделано одно наведение мыши / мышка.Предложения?

1 Ответ

0 голосов
/ 07 февраля 2011

Хорошо, не очень популярный вопрос.

Я наткнулся на событие CustomizeMapAreas. Там я перебрал e.MapAreaItems и отрегулировал размер областей так, чтобы была всего одна область для всего столбца. Затем я удалил области, которые мне больше не нужны. Вероятно, это не самый эффективный способ сделать это, но вот оно ...

protected void FixStackedColumnAreas(object sender, CustomizeMapAreasEventArgs e)
{
    Dictionary<float, MapArea> newAreas = new Dictionary<float, MapArea>();

    //loop through all areas and collect the Min and Max Y values for each X 
    foreach (MapArea area in e.MapAreaItems)
    {
        if (!newAreas.ContainsKey(area.Coordinates[0]))
        {
            newAreas.Add(area.Coordinates[0], area);
        }
        else
        {
            //get the lowest and highest Y for this X column area
            newAreas[area.Coordinates[0]].Coordinates[1] = Math.Min(newAreas[area.Coordinates[0]].Coordinates[1], area.Coordinates[1]);
            newAreas[area.Coordinates[0]].Coordinates[3] = Math.Max(newAreas[area.Coordinates[0]].Coordinates[3], area.Coordinates[3]);
        }
    }

    //clear out existing areas
    e.MapAreaItems.Clear();

    //put in our new areas that define the whole column area instead of the individual pieces of the column
    foreach (MapArea area in newAreas.Values)
    {
        e.MapAreaItems.Add(area);
    }
}
...