2013-03-05 31 views
0

在.NET C#折線圖中,對於每個空白點標記,我想在用戶將鼠標懸停在標記上時顯示一個彈出窗口。圖表控件鼠標懸停的.NET web-顯示高級彈出

將簡單的字符串作爲工具提示添加似乎很簡單,但我需要爲包含幾行信息和圖像的每個空白點標記創建一個小的彈出框。

我會感謝您的任何建議!

+0

你使用什麼庫來繪製圖表? – 2013-03-05 16:21:15

+0

@StealthRabbi Microsoft圖表控件。我認爲一種可能的選擇是重寫工具提示... http://stevenhollidge.blogspot.com/2012/04/custom-tooltip-and-popup.html – mplace 2013-03-05 19:43:55

+0

但重寫網絡彈出窗口似乎比形式更具挑戰性 – mplace 2013-03-06 09:18:36

回答

2

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所有系列的地圖區域都很重要,否則它將只爲圖例生成地圖區域。