如何使鼠标悬停在数据点上时显示工具提示
本文关键字:显示 工具提示 数据 何使 鼠标 悬停 | 更新日期: 2023-09-27 18:28:44
我一直在寻找一些专注于工具提示如何工作的教程,但运气不佳。
我有一个测试项目,我绘制了一个包含五个数据点的折线图。当我实例化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 );
}
图表按预期渲染,但当鼠标悬停在数据点上时,不会显示工具提示。我显然在某个地方错过了一步,但我不知道这是什么。
EDIT:显示图表视图模型的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();
}
您正在DefineSeriesStyle
中执行禁用工具提示的操作。我已经测试了没有语句DefineSeriesStyle( series );
的方法,并显示了工具提示。
有关工具提示的全面概述,自定义工具提示请参阅我之前对类似问题的回答。在LineSeries WinForms图表中显示工具提示?
urns我的问题是我没有为我的图表渲染地图区域。对于那些遇到同样问题的人来说,他的代码解决了我的问题:
控制器
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"});
}