优化Tooltip

This commit is contained in:
monitor1394
2020-06-11 12:48:00 +08:00
parent 1d3bfd8bd6
commit 42980e87e3
3 changed files with 16 additions and 8 deletions

View File

@@ -202,8 +202,8 @@
* `{d}`为百分比值,注意不带`%`号。
* `{.1}`表示指定`index``1``serie`对应颜色的圆点。
* `{a1}``{b1}``{c1}`中的`1`表示指定`index``1``serie``{a}`默认`index``0``serie`
* `{c1:2}`表示索引为`1``serie`的数据项的第`3`个数据(`index``2`)。
* `{c1:2-2}`表示索引为`1``serie`的第`3`个数据项的第`3`个数据(一个数据项有多个数据)。
* `{c1:2}`表示索引为`1``serie`当前指示数据项的第`3`个数据(一个数据项有多个数据index为`2`表示第`3`个数据)。
* `{c1:2-2}`表示索引为`1``serie`的第`3`个数据项的第`3`个数据(也就是要指定第几个数据项时必须要指定第几个数据)。
* `{d1:2:f2}`表示单独指定了数值的格式化字符串为`f2`(不指定时用`numericFormatter`)。
* 示例:`"{a}:{c}"``"{a1}:{c1:f1}"``"{a1}:{c1:1f1}"`
* `titleFormatter`:提示框标题内容的字符串模版格式器。支持用 `\n` 换行。仅当`itemFormatter`生效时才有效。可以单独设置占位符`{i}`表示忽略不显示标题内容。

View File

@@ -104,8 +104,8 @@ namespace XCharts
/// {d}为百分比值,注意不带%号。
/// {.1}表示指定index为1的serie对应颜色的圆点。
/// {a1}、{b1}、{c1}中的1表示指定index为1的serie{a}默认index为0的serie。
/// {c1:2}表示索引为1的serie的数据项的第3个数据index为2)。
/// {c1:2-2}表示索引为1的serie的第3个数据项的第3个数据一个数据项有多个数据)。
/// {c1:2}表示索引为1的serie的当前指示数据项的第3个数据一个数据项有多个数据index为2表示第3个数据)。
/// {c1:2-2}表示索引为1的serie的第3个数据项的第3个数据也就是要指定第几个数据项时必须要指定第几个数据)。
/// {d1:2:f2}表示单独指定了数值的格式化字符串为f2不指定时用numericFormatter
/// 示例:"{a}:{c}"、"{a1}:{c1:f1}"、"{a1}:{c1:1f1}"
/// </summary>

View File

@@ -188,10 +188,17 @@ namespace XCharts
var sb = ChartHelper.sb;
var title = tooltip.titleFormatter;
var formatTitle = !string.IsNullOrEmpty(title);
var titleIsIgnroe = false;
var needCategory = false;
var first = true;
var isScatter = false;
sb.Length = 0;
if ("{i}".Equals(tooltip.titleFormatter))
{
title = string.Empty;
formatTitle = false;
titleIsIgnroe = true;
}
for (int i = 0; i < series.Count; i++)
{
var serie = series.GetSerie(i);
@@ -235,8 +242,7 @@ namespace XCharts
needCategory = needCategory || (serie.type == SerieType.Line || serie.type == SerieType.Bar);
if (formatTitle)
{
if (title.Equals("{i}")) title = string.Empty;
else FormatterHelper.ReplaceContent(ref title, dataIndex, tooltip.numericFormatter, null, series, themeInfo, category, dataZoom);
FormatterHelper.ReplaceContent(ref title, dataIndex, tooltip.numericFormatter, null, series, themeInfo, category, dataZoom);
}
if (serie.show)
{
@@ -262,8 +268,10 @@ namespace XCharts
}
else if (string.IsNullOrEmpty(title))
{
if (needCategory) return category + FormatterHelper.PH_NN + FormatterHelper.TrimAndReplaceLine(sb);
else return FormatterHelper.TrimAndReplaceLine(sb);
if (needCategory && !titleIsIgnroe)
return category + FormatterHelper.PH_NN + FormatterHelper.TrimAndReplaceLine(sb);
else
return FormatterHelper.TrimAndReplaceLine(sb);
}
else
{