优化Tooltip支持设置不同的类目轴数据 #129

This commit is contained in:
monitor1394
2021-03-30 20:24:12 +08:00
parent 9fa3f952a5
commit 56a0576d42
11 changed files with 91 additions and 40 deletions

View File

@@ -390,8 +390,7 @@ namespace XCharts
UpdateSerieGridIndex();
RefreshSeriePainterByGridIndex(grid.index);
var category = tempAxis.GetData(index, dataZoom);
var content = TooltipHelper.GetFormatterContent(tooltip, index, m_Series, m_Theme, category,
dataZoom, isCartesian);
var content = TooltipHelper.GetFormatterContent(tooltip, index, this, dataZoom, isCartesian);
TooltipHelper.SetContentAndPosition(tooltip, content, chartRect);
tooltip.SetActive(true);
@@ -405,6 +404,51 @@ namespace XCharts
}
}
internal string GetTooltipCategory(int dataIndex, DataZoom dataZoom = null)
{
bool isCartesian = IsValue();
var index = -1;
Axis tempAxis;
if (isCartesian)
{
index = tooltip.runtimeDataIndex[0];
tempAxis = m_XAxes[0];
}
else if (m_XAxes[0].type == Axis.AxisType.Value)
{
index = (int)tooltip.runtimeYValues[0];
tempAxis = m_YAxes[0];
}
else
{
index = (int)tooltip.runtimeXValues[0];
tempAxis = m_XAxes[0];
}
return tempAxis.GetData(index, dataZoom);
}
internal string GetTooltipCategory(int dataIndex, Serie serie, DataZoom dataZoom = null)
{
bool isCartesian = IsValue();
var index = -1;
Axis tempAxis;
if (isCartesian)
{
index = tooltip.runtimeDataIndex[0];
tempAxis = GetXAxis(serie.xAxisIndex);
}
else if (m_XAxes[0].type == Axis.AxisType.Value)
{
index = (int)tooltip.runtimeYValues[0];
tempAxis = GetYAxis(serie.yAxisIndex);
}
else
{
index = (int)tooltip.runtimeXValues[0];
tempAxis = GetXAxis(serie.xAxisIndex);
}
return tempAxis == null ? "" : tempAxis.GetData(index, dataZoom);
}
protected void UpdateAxisTooltipLabel(int axisIndex, Axis axis)
{
var showTooltipLabel = axis.show && tooltip.type == Tooltip.Type.Corss;
@@ -608,7 +652,7 @@ namespace XCharts
for (int i = 0; i < m_Series.Count; i++)
{
var serie = m_Series.GetSerie(i);
if(serie.yAxisIndex != axis.index) continue;
if (serie.yAxisIndex != axis.index) continue;
for (int j = serie.data.Count - 1; j >= 0; j--)
{
axis.runtimeData.Add(serie.data[j].name);