2013-08-23 112 views
0

我一直在寻找某种教程,重点讨论工具提示如何工作,但没有多少运气。如何使鼠标悬停在数据点上时显示工具提示

我有一个测试项目,我用五个数据点渲染折线图。当我实例化Chart对象时,我设置了IsMapEnabled = true。当我定义系列时,我尝试设置工具提示。

private void DefineSeries() { 
    var series = new Series(); 
    series.ToolTip = "#VALY"; 
    series.PostBackValue = "#Index"; 
    var x = new[] {0, 1, 2, 3, 4, 5}; 
    var y = new[] {0, 4, 5, 3, 7, 2}; 
    for (int i = 0; i < x.Length; i++) { 
     series.Points.Add(new DataPoint(x[ i ], y[ i ])); 
    } 
    series.ChartType = SeriesChartType.Line; 
    DefineSeriesStyle(series); 
    chart_.Series.Add(series); 
    } 

该图表按预期呈现,但鼠标悬停在数据点上时不显示工具提示。我显然错过了某个步骤,但我不知道它是什么。

编辑:显示图表视图模型和后续函数调用的Action方法和构造函数的代码。

public ActionResult CausedOutPoint() { 
    var causedOut = new CausedOutViewModel(); 
    var path = Server.MapPath("~") + "CausedOut.Png"; 
    causedOut.Chart.SaveImage(path, ChartImageFormat.Png); 
    return File(path, "img/png"); 
    } 

    public CausedOutViewModel() { 
    chart_ = new Chart {IsMapEnabled = true}; 
    chart_.PostPaint += chart__PostPaint; 
    chart_.RenderType = RenderType.ImageMap; 
    chart_.ID = "CausedOut"; 
    InitializeChart(chart_); 
    chart_.Width = new Unit(1200, UnitType.Pixel); 
    chart_.Height = new Unit(800, UnitType.Pixel); 
    CreateTitles(); 
    } 

    private void InitializeChart() { 
    DefineSeries(); 
    DefineChartArea(); 
    } 
+0

必要剃刀你设置一个ID为'图表',如在[MSChart/Asp.net图表不显示工具提示](http://stackoverflow.com/questions/9456506/mschart-asp-net-charts-dont-show-tooltips )? –

+0

我在搜索过程中看到了这一点。我试了一下,仍然没有。 – BrianM

回答

0

嗯,我的问题是,我没有渲染地图区域为我的图表。对于那些谁碰上了同样的问题,他的代码,固定我的问题:

控制器

public ActionResult CausedOutPoint() { 
    var ms = (byte[])Session[ "MS" ]; 
    return File(ms, "img/png"); 
    } 

    public ActionResult CausedOutMap(string name) 
    { 

    var causedOut = new CausedOutViewModel(); 
    var ms = new MemoryStream(); 
    causedOut.Chart.SaveImage(ms, ChartImageFormat.Png); 
    Session[ "MS" ] = ms.ToArray(); 
    return Content(causedOut.Chart.GetHtmlImageMap(name)); 
    } 

Index.csthml

<img src="@Url.Action("CausedOutPoint")" usemap="#CausedOut"/> 
    @{ 
     Html.RenderAction("CausedOutMap", new { name = "causedOut"}); 
    } 
0

您正在做的事情在DefineSeriesStyle,禁用工具提示。我已经测试了您的方法,但没有显示DefineSeriesStyle(series);并显示工具提示。

有关工具提示的全面概述,自定义工具提示参考我以前的答案,以获得类似问题。 Show tooltip in LineSeries WinForms Chart?

+0

我试着评论'DefineSeriesStyle',它仍然没有工作。我在该方法中唯一做的是设置系列颜色,标记样式等。我根本不触摸工具提示属性(标签或其他)。所以我认为这可能指向我如何渲染图表。我将更多代码编辑到显示Action方法,视图模型构造函数和'InitializeChart'方法的原始文章中。 – BrianM

相关问题