0

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

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

我将不胜感激任何建议!

4

1 回答 1

2

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

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

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

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

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

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

于 2013-03-06T15:12:24.393 回答