mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-26 19:00:24 +00:00
[optimize][tooltip] serie placeHolder
This commit is contained in:
@@ -54,6 +54,7 @@
|
|||||||
|
|
||||||
## master
|
## master
|
||||||
|
|
||||||
|
* (2022.06.25) 优化`Serie`设置`PlaceHolder`时的`Tooltip`表现
|
||||||
* (2022.06.25) 增加`Since`标识配置参数从哪个版本开始支持
|
* (2022.06.25) 增加`Since`标识配置参数从哪个版本开始支持
|
||||||
* (2022.06.24) 优化`Painter`绘制层,`Top`层细分为`Upper`和`Top`层
|
* (2022.06.24) 优化`Painter`绘制层,`Top`层细分为`Upper`和`Top`层
|
||||||
* (2022.06.24) 增加`Legend`对`Background`和`Padding`的支持
|
* (2022.06.24) 增加`Legend`对`Background`和`Padding`的支持
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ namespace XCharts.Runtime
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
chart.RefreshTopPainter();
|
chart.RefreshUpperPainter();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,14 +210,14 @@ namespace XCharts.Runtime
|
|||||||
foreach (var serie in chart.series)
|
foreach (var serie in chart.series)
|
||||||
{
|
{
|
||||||
if (serie is INeedSerieContainer &&
|
if (serie is INeedSerieContainer &&
|
||||||
(serie as INeedSerieContainer).containterInstanceId == component.instanceId)
|
(serie as INeedSerieContainer).containterInstanceId == component.instanceId &&
|
||||||
|
!serie.placeHolder)
|
||||||
{
|
{
|
||||||
var isTriggerAxis = tooltip.IsTriggerAxis();
|
var isTriggerAxis = tooltip.IsTriggerAxis();
|
||||||
if (container is GridCoord)
|
if (container is GridCoord)
|
||||||
{
|
{
|
||||||
var xAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
|
var xAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
|
||||||
var yAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
|
var yAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
|
||||||
serie.context.pointerEnter = true;
|
|
||||||
UpdateAxisPointerDataIndex(serie, xAxis, yAxis, container as GridCoord, isTriggerAxis);
|
UpdateAxisPointerDataIndex(serie, xAxis, yAxis, container as GridCoord, isTriggerAxis);
|
||||||
}
|
}
|
||||||
else if (container is PolarCoord)
|
else if (container is PolarCoord)
|
||||||
@@ -242,11 +242,16 @@ namespace XCharts.Runtime
|
|||||||
serie.context.pointerAxisDataIndexs.Clear();
|
serie.context.pointerAxisDataIndexs.Clear();
|
||||||
if (yAxis.IsCategory())
|
if (yAxis.IsCategory())
|
||||||
{
|
{
|
||||||
serie.context.pointerAxisDataIndexs.Add((int) yAxis.context.pointerValue);
|
if (isTriggerAxis)
|
||||||
yAxis.context.axisTooltipValue = yAxis.context.pointerValue;
|
{
|
||||||
|
serie.context.pointerEnter = true;
|
||||||
|
serie.context.pointerAxisDataIndexs.Add((int) yAxis.context.pointerValue);
|
||||||
|
yAxis.context.axisTooltipValue = yAxis.context.pointerValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (yAxis.IsTime())
|
else if (yAxis.IsTime())
|
||||||
{
|
{
|
||||||
|
serie.context.pointerEnter = true;
|
||||||
if (isTriggerAxis)
|
if (isTriggerAxis)
|
||||||
GetSerieDataIndexByAxis(serie, yAxis, grid);
|
GetSerieDataIndexByAxis(serie, yAxis, grid);
|
||||||
else
|
else
|
||||||
@@ -254,11 +259,16 @@ namespace XCharts.Runtime
|
|||||||
}
|
}
|
||||||
else if (xAxis.IsCategory())
|
else if (xAxis.IsCategory())
|
||||||
{
|
{
|
||||||
serie.context.pointerAxisDataIndexs.Add((int) xAxis.context.pointerValue);
|
if (isTriggerAxis)
|
||||||
xAxis.context.axisTooltipValue = xAxis.context.pointerValue;
|
{
|
||||||
|
serie.context.pointerEnter = true;
|
||||||
|
serie.context.pointerAxisDataIndexs.Add((int) xAxis.context.pointerValue);
|
||||||
|
xAxis.context.axisTooltipValue = xAxis.context.pointerValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
serie.context.pointerEnter = true;
|
||||||
if (isTriggerAxis)
|
if (isTriggerAxis)
|
||||||
GetSerieDataIndexByAxis(serie, xAxis, grid);
|
GetSerieDataIndexByAxis(serie, xAxis, grid);
|
||||||
else
|
else
|
||||||
@@ -449,6 +459,7 @@ namespace XCharts.Runtime
|
|||||||
{
|
{
|
||||||
if (!tooltip.show) return;
|
if (!tooltip.show) return;
|
||||||
if (tooltip.type == Tooltip.Type.None) return;
|
if (tooltip.type == Tooltip.Type.None) return;
|
||||||
|
if (!IsAnySerieNeedTooltip()) return;
|
||||||
if (m_PointerContainer is GridCoord)
|
if (m_PointerContainer is GridCoord)
|
||||||
{
|
{
|
||||||
var grid = m_PointerContainer as GridCoord;
|
var grid = m_PointerContainer as GridCoord;
|
||||||
@@ -540,6 +551,15 @@ namespace XCharts.Runtime
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool IsAnySerieNeedTooltip()
|
||||||
|
{
|
||||||
|
foreach (var serie in chart.series)
|
||||||
|
{
|
||||||
|
if (serie.context.pointerEnter) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
private void DrawYAxisIndicator(VertexHelper vh, Tooltip tooltip, GridCoord grid)
|
private void DrawYAxisIndicator(VertexHelper vh, Tooltip tooltip, GridCoord grid)
|
||||||
{
|
{
|
||||||
var yAxes = chart.GetChartComponents<YAxis>();
|
var yAxes = chart.GetChartComponents<YAxis>();
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ namespace XCharts.Runtime
|
|||||||
if (m_SerieGrid == null)
|
if (m_SerieGrid == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var needCheck = (chart.isPointerInChart && m_SerieGrid.IsPointerEnter()) || m_LegendEnter;
|
var needCheck = (chart.isPointerInChart && m_SerieGrid.IsPointerEnter() && !serie.placeHolder) || m_LegendEnter;
|
||||||
var needInteract = false;
|
var needInteract = false;
|
||||||
if (!needCheck)
|
if (!needCheck)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -510,7 +510,7 @@ namespace XCharts.Runtime
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter);
|
itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter);
|
||||||
if (TooltipHelper.IsIgnoreItemFormatter(itemFormatter))
|
if (serie.placeHolder || TooltipHelper.IsIgnoreItemFormatter(itemFormatter))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var param = serie.context.param;
|
var param = serie.context.param;
|
||||||
@@ -550,7 +550,7 @@ namespace XCharts.Runtime
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter);
|
itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter);
|
||||||
if (TooltipHelper.IsIgnoreItemFormatter(itemFormatter))
|
if (serie.placeHolder || TooltipHelper.IsIgnoreItemFormatter(itemFormatter))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var colorIndex = chart.GetLegendRealShowNameIndex(serieData.name);
|
var colorIndex = chart.GetLegendRealShowNameIndex(serieData.name);
|
||||||
|
|||||||
Reference in New Issue
Block a user