如何向 TeeChart 中的箱线图添加工具提示?
How to add tooltips to a Box plot in TeeChart?
正如标题所说,我正在使用 TeeChart 在一张图表中绘制多个箱线图 object。由于箱线图的数量可能非常大,我希望能够单击一个框并获得与该系列相关的信息以显示为工具提示。
我目前正尝试使用 MarksTip 执行此操作,但出于某种原因,当我尝试将鼠标悬停在框上时,MarksTip 有时会打开然后立即关闭(基本上是瞬间可见)。我已经尝试设置隐藏延迟,但它似乎忽略了这一点。
下面的代码片段:
seriesIndex = 0;
foreach (var seriesData in seriesDataList)
{
var series = new Box()
series.UseCustomValues = true;
series.Box.HorizSize = 5;
series.Box.Style = PointerStyles.Rectangle;
series.MildOut.Visible = true;
series.MildOut.HorizSize = 2;
series.MildOut.VertSize = 2;
series.ExtrOut.Visible = true;
series.ExtrOut.HorizSize = 2;
series.ExtrOut.VertSize = 2;
series.LinePen.Visible = _isLineVisible;
series.Pointer.Pen.Visible = true;
series.ShowInLegend = false;
series.Add(seriesIndex, seriesData);
series.Title = "tooltip text";
var tooltip = new MarksTip(Chart.Chart)
{
Series = series,
Style = MarksStyles.SeriesTitle,
HideDelay = 31000,
};
Chart.Series.Add(series);
seriesIndex++;
}
感谢 为我指明了正确的方向。
我最终使用 GetSeriesMark
事件修改单个图表绑定的文本 MarksTip
而不是创建多个系列绑定的 `MarksTip
seriesIndex = 0;
Chart.Tools.Add(new MarksTip());
foreach (var seriesData in seriesDataList)
{
var series = new Box()
series.UseCustomValues = true;
//Other series appearance stuff
series.Add(seriesIndex, seriesData);
series.Title = "tooltip text";
series.GetSeriesMark += (s, args) =>
{
args.MarkText = s.Title;
};
series.Marks.Visible = false;
Chart.Series.Add(series);
seriesIndex++;
}
关于此方法的一个注释。工具提示只会在悬停在实际数据点上时出现,而不是整个框。不太理想,但至少我现在可以阅读工具提示了。
正如标题所说,我正在使用 TeeChart 在一张图表中绘制多个箱线图 object。由于箱线图的数量可能非常大,我希望能够单击一个框并获得与该系列相关的信息以显示为工具提示。
我目前正尝试使用 MarksTip 执行此操作,但出于某种原因,当我尝试将鼠标悬停在框上时,MarksTip 有时会打开然后立即关闭(基本上是瞬间可见)。我已经尝试设置隐藏延迟,但它似乎忽略了这一点。
下面的代码片段:
seriesIndex = 0;
foreach (var seriesData in seriesDataList)
{
var series = new Box()
series.UseCustomValues = true;
series.Box.HorizSize = 5;
series.Box.Style = PointerStyles.Rectangle;
series.MildOut.Visible = true;
series.MildOut.HorizSize = 2;
series.MildOut.VertSize = 2;
series.ExtrOut.Visible = true;
series.ExtrOut.HorizSize = 2;
series.ExtrOut.VertSize = 2;
series.LinePen.Visible = _isLineVisible;
series.Pointer.Pen.Visible = true;
series.ShowInLegend = false;
series.Add(seriesIndex, seriesData);
series.Title = "tooltip text";
var tooltip = new MarksTip(Chart.Chart)
{
Series = series,
Style = MarksStyles.SeriesTitle,
HideDelay = 31000,
};
Chart.Series.Add(series);
seriesIndex++;
}
感谢
我最终使用 GetSeriesMark
事件修改单个图表绑定的文本 MarksTip
而不是创建多个系列绑定的 `MarksTip
seriesIndex = 0;
Chart.Tools.Add(new MarksTip());
foreach (var seriesData in seriesDataList)
{
var series = new Box()
series.UseCustomValues = true;
//Other series appearance stuff
series.Add(seriesIndex, seriesData);
series.Title = "tooltip text";
series.GetSeriesMark += (s, args) =>
{
args.MarkText = s.Title;
};
series.Marks.Visible = false;
Chart.Series.Add(series);
seriesIndex++;
}
关于此方法的一个注释。工具提示只会在悬停在实际数据点上时出现,而不是整个框。不太理想,但至少我现在可以阅读工具提示了。