增加TooltipTitle可通过TitleLabelStylenumericFormatter格式化时间显示 (#353)

This commit is contained in:
monitor1394
2025-11-03 07:41:41 +08:00
parent f1c9a3ac4b
commit 39cee1bd52
3 changed files with 20 additions and 4 deletions

View File

@@ -80,6 +80,7 @@ slug: /changelog
## master
* (2025.11.03) 增加`Tooltip``Title`可通过`TitleLabelStyle``numericFormatter`格式化时间显示 (#353)
* (2025.10.30) 增加`Chart``useUtc`参数设置显示时间是否用UTC时间
* (2025.10.30) 优化`Candlestick`对时间轴的支持
* (2025.10.30) 增加`Scatter``ignore`支持设置忽略数据

View File

@@ -616,7 +616,21 @@ namespace XCharts.Runtime
var serieData = serie.GetSerieData(serie.context.pointerItemDataIndex);
if (serieData != null)
{
tooltip.context.data.title = DateTimeUtil.GetDefaultDateTimeString((int)serieData.GetData(0), axisRange, !chart.useUtc);
var value = (int)serieData.GetData(0);
if (string.IsNullOrEmpty(tooltip.titleLabelStyle.numericFormatter))
tooltip.context.data.title = DateTimeUtil.GetDefaultDateTimeString(value, axisRange, !chart.useUtc);
else
{
var dateTime = DateTimeUtil.GetDateTime(value, !chart.useUtc);
try
{
tooltip.context.data.title = dateTime.ToString(tooltip.titleLabelStyle.numericFormatter);
}
catch
{
tooltip.context.data.title = DateTimeUtil.GetDefaultDateTimeString(value, axisRange, !chart.useUtc);
}
}
}
}
serie.handler.UpdateTooltipSerieParams(dataIndex, showCategory, category,

View File

@@ -16,8 +16,9 @@ namespace XCharts.Runtime
else
{
tooltip.context.data.title = tooltip.titleFormatter;
FormatterHelper.ReplaceContent(ref tooltip.context.data.title, -1,
tooltip.numericFormatter, null, chart);
var numericFormatter = string.IsNullOrEmpty(tooltip.titleLabelStyle.numericFormatter)
? tooltip.numericFormatter : tooltip.titleLabelStyle.numericFormatter;
FormatterHelper.ReplaceContent(ref tooltip.context.data.title, -1, numericFormatter, null, chart);
}
}
for (int i = tooltip.context.data.param.Count - 1; i >= 0; i--)
@@ -56,7 +57,7 @@ namespace XCharts.Runtime
public static bool IsIgnoreFormatter(string itemFormatter)
{
return "-".Equals(itemFormatter) ||"{i}".Equals(itemFormatter, StringComparison.CurrentCultureIgnoreCase);
return "-".Equals(itemFormatter) || "{i}".Equals(itemFormatter, StringComparison.CurrentCultureIgnoreCase);
}
public static void LimitInRect(BaseChart chart, Tooltip tooltip, Rect chartRect)