增加Custom类型的Serie的tooltip自定义

This commit is contained in:
monitor1394
2021-04-29 19:57:07 +08:00
parent 0d98a1db16
commit 852f93dec5
4 changed files with 22 additions and 15 deletions

View File

@@ -189,13 +189,14 @@ namespace XCharts
}
}
private static void InitCoordinateTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index,
public static void InitCoordinateTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index,
ChartTheme theme, bool isCartesian, DataZoom dataZoom = null)
{
string key = serie.name;
float xValue, yValue;
serie.GetXYData(index, dataZoom, out xValue, out yValue);
var isIngore = serie.IsIgnorePoint(index);
if(isIngore) return;
var serieData = serie.GetSerieData(index, dataZoom);
var numericFormatter = GetItemNumericFormatter(tooltip, serie, serieData);
if (isCartesian)
@@ -242,7 +243,7 @@ namespace XCharts
}
private static void InitDefaultContent(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index,
ChartTheme theme = null, DataZoom dataZoom = null, bool isCartesian = false,
BaseChart chart, DataZoom dataZoom = null, bool isCartesian = false,
Radar radar = null)
{
switch (serie.type)
@@ -250,28 +251,31 @@ namespace XCharts
case SerieType.Line:
case SerieType.Bar:
case SerieType.Candlestick:
InitCoordinateTooltip(ref sb, tooltip, serie, index, theme, isCartesian, dataZoom);
InitCoordinateTooltip(ref sb, tooltip, serie, index, chart.theme, isCartesian, dataZoom);
break;
case SerieType.Scatter:
case SerieType.EffectScatter:
InitScatterTooltip(ref sb, tooltip, serie, index, theme);
InitScatterTooltip(ref sb, tooltip, serie, index, chart.theme);
break;
case SerieType.Radar:
InitRadarTooltip(ref sb, tooltip, serie, radar, theme);
InitRadarTooltip(ref sb, tooltip, serie, radar, chart.theme);
break;
case SerieType.Pie:
InitPieTooltip(ref sb, tooltip, serie, index, theme);
InitPieTooltip(ref sb, tooltip, serie, index, chart.theme);
break;
case SerieType.Ring:
InitRingTooltip(ref sb, tooltip, serie, index, theme);
InitRingTooltip(ref sb, tooltip, serie, index, chart.theme);
break;
case SerieType.Heatmap:
break;
case SerieType.Gauge:
InitGaugeTooltip(ref sb, tooltip, serie, index, theme);
InitGaugeTooltip(ref sb, tooltip, serie, index, chart.theme);
break;
case SerieType.Gantt:
InitGanttTooltip(ref sb, tooltip, serie, index, theme);
InitGanttTooltip(ref sb, tooltip, serie, index, chart.theme);
break;
case SerieType.Custom:
chart.InitCustomSerieTooltip(ref sb, serie, index);
break;
}
}
@@ -401,7 +405,7 @@ namespace XCharts
if (string.IsNullOrEmpty(itemFormatter))
{
if (!first) sb.Append(FormatterHelper.PH_NN);
InitDefaultContent(ref sb, tooltip, serie, dataIndex, chart.theme, dataZoom, isCartesian, radar);
InitDefaultContent(ref sb, tooltip, serie, dataIndex, chart, dataZoom, isCartesian, radar);
first = false;
continue;
}
@@ -449,7 +453,7 @@ namespace XCharts
if (string.IsNullOrEmpty(itemFormatter) || serie.type == SerieType.Radar)
{
if (!first) sb.Append(FormatterHelper.PH_NN);
InitDefaultContent(ref sb, tooltip, serie, dataIndex, chart.theme, dataZoom, isCartesian, radar);
InitDefaultContent(ref sb, tooltip, serie, dataIndex, chart, dataZoom, isCartesian, radar);
first = false;
continue;
}