.NET web-显示图表控制鼠标悬停的高级弹出窗口

时间:2013-03-05 15:25:54

标签: c# .net charts microsoft-chart-controls

在.NET C#折线图中,对于每个空点标记,我想在用户将鼠标悬停在标记上时显示弹出窗口。

将简单字符串添加为工具提示似乎很简单,但我需要为每个空点标记创建一个小弹出框,其中包含几行信息和图像。

我会感谢任何建议!

1 个答案:

答案 0 :(得分:2)

MsCharts在图表上生成地图叠加层(一组地图区域),您可以自定义该地图叠加层以获取自定义悬停事件。 图表公开了您可以订阅的CustomizeMapAreas事件,如下所示:

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

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

现在在图表初始化期间调用BindMapAreaEventHandlers()函数,并将显示弹出窗口的逻辑悬停在CustomizeMapAreasHandler中,您可以在其中迭代为图表生成的所有地图项。< / p>

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

为了正确生成所有地图区域,我建议在向图表添加系列时为所有系列设置非空工具提示,然后在CustomizeMapAreasHandler中将它们更改回null。这个简单的技巧告诉MsCharts,所有系列的地图区域都很重要,否则它只会为图例生成地图区域。