2014-12-29 81 views
0

我正在使用System.Web.UI.DataVisualization.Charting来创建一些折线图。将鼠标悬停在一系列数据点上时,我想显示工具提示(数据点的x和y值)。 如图表图片所示,当鼠标悬停在红色圆圈上时,我想要一个工具提示。 chart image在System.Web.UI.DataVisualization.Charting上显示鼠标悬停系列数据的工具提示

我添加了series.ToolTip方法,但它不工作。 这里是我的createSeries meothod

private System.Web.UI.DataVisualization.Charting.Series CreateSeries(List<X> xAxisData, List<Y> yAxisdata) 
    { 
     // Chart Series 
     System.Web.UI.DataVisualization.Charting.Series _series = 
      new System.Web.UI.DataVisualization.Charting.Series(this.SeriesNameList[this.seriesCount]); 
     _series.ChartType = this.ChartType; 

     // Bind the data 
     _series.Points.DataBindXY(xAxisData, yAxisdata); 

     // Set Default Properties 
     _series.Font = this.GetFontForSeries(); 
     _series.LabelForeColor = this.GetLabelColor(); 

     // Add Transparent Marker to increase mouse area for ToolTip 
     _series.MarkerStyle = System.Web.UI.DataVisualization.Charting.MarkerStyle.Circle; 
     _series.MarkerSize = 7; 
     _series.ToolTip = "hello"; 

     //// Smart Labels 
     _series.SmartLabelStyle.Enabled = true; 
     _series.SmartLabelStyle.MinMovingDistance = 5; 
     _series.SmartLabelStyle.MaxMovingDistance = 50; 
     _series.SmartLabelStyle.MovingDirection = 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.Top | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.TopLeft | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.TopRight | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.Bottom | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.BottomLeft | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.BottomRight | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.Left | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.Right | 
      System.Web.UI.DataVisualization.Charting.LabelAlignmentStyles.Center; 
     _series.SmartLabelStyle.IsOverlappedHidden = true; 
     _series.SmartLabelStyle.AllowOutsidePlotArea = System.Web.UI.DataVisualization.Charting.LabelOutsidePlotAreaStyle.Yes; 

     this.seriesCount++; 
     return _series; 
    } 
private void InitializeChart() 
    { 
     this.Chart.IsMapEnabled = false; 

     this.Chart.RenderType = System.Web.UI.DataVisualization.Charting.RenderType.ImageTag; 
     this.Chart.ImageType = System.Web.UI.DataVisualization.Charting.ChartImageType.Png; 
     this.Chart.AntiAliasing = System.Web.UI.DataVisualization.Charting.AntiAliasingStyles.Graphics; 
     this.Chart.TextAntiAliasingQuality = System.Web.UI.DataVisualization.Charting.TextAntiAliasingQuality.High; 
     this.CreateTitle(); 
     this.CreateLegends(); 
    } 

有人可以帮助我吗? 我通过一些questios搜索,但找不到解决方案。

回答

0

您需要将工具提示添加到点。

Points.DataBindXY没有像工具提示那样绑定扩展图表属性的方法。 (Points.DataBind出现,顺便说一句) 来源:http://blogs.msdn.com/b/alexgor/archive/2009/02/21/data-binding-ms-chart-control.aspx

所以,一个解决办法是遍历的一系列点和手动添加工具提示的点。你可以使用/修改下面的代码。 (#VALX和#VAL是添加XY坐标,而无需直接读数的值的一种方法,另一种方法是直接读取XY值)不使用关键字

// Bind the data 
_series.Points.DataBindXY(xAxisData, yAxisdata); 

// Set Tooltips 
foreach(var point in _series.Points) 
{ 
    point.ToolTip = "(#VALX, #VAL)"; 
} 

// Set Default Properties 
_series.Font = this.GetFontForSeries(); 
_series.LabelForeColor = this.GetLabelColor(); 

备用方式:

// Bind the data 
_series.Points.DataBindXY(xAxisData, yAxisdata); 

// Set Tooltips 
foreach(var point in _series.Points) 
{ 
    point.ToolTip = "(" + point.X + ", " + point.YValues[0] + ")"; 
} 

// Set Default Properties 
_series.Font = this.GetFontForSeries(); 
_series.LabelForeColor = this.GetLabelColor(); 
+0

它仍然没有工作。我需要设置其他任何属性吗?我将图表渲染为ImageTag。我已编辑该问题以添加该功能。我需要在那里添加任何财产吗? – root545

+0

这种方法在我的最后工作,但我的测试环境是在winform环境中使用图表控件。我会尽量抽出时间来设置一个aspx测试环境。但是,您需要使用标记来呈现它,以便从图表控件中获取工具提示,因为它会在呈现给客户端时自动生成必要的代码。 – JHubbard80

+0

我正在使用来渲染图表.FYI – root545

相关问题