重构SerieSymbolsizeFunction参数

This commit is contained in:
monitor1394
2025-02-06 21:23:58 +08:00
parent c6896677b8
commit ec3d012f08
9 changed files with 13 additions and 16 deletions

View File

@@ -79,6 +79,7 @@ slug: /changelog
## master ## master
* (2025.02.05) 重构`SerieSymbol``sizeFunction`参数
* (2025.01.23) 修复`Treemap``Label`不显示的问题 * (2025.01.23) 修复`Treemap``Label`不显示的问题
* (2025.01.15) 修复`Chart`在运行时动态添加`Component`异常的问题 (#339) * (2025.01.15) 修复`Chart`在运行时动态添加`Component`异常的问题 (#339)
* (2025.01.08) 修复`TextMeshPro`关闭时残留组件影响`Text`初始化的问题 * (2025.01.08) 修复`TextMeshPro`关闭时残留组件影响`Text`初始化的问题

View File

@@ -152,18 +152,16 @@ namespace XCharts.Runtime
/// <summary> /// <summary>
/// 根据指定的sizeType获得标记的大小 /// 根据指定的sizeType获得标记的大小
/// </summary> /// </summary>
/// <param name="data"></param> public float GetSize(SerieData serieData, float themeSize)
/// <returns></returns>
public float GetSize(List<double> data, float themeSize)
{ {
switch (m_SizeType) switch (m_SizeType)
{ {
case SymbolSizeType.Custom: case SymbolSizeType.Custom:
return size == 0 ? themeSize : size; return size == 0 ? themeSize : size;
case SymbolSizeType.FromData: case SymbolSizeType.FromData:
if (data != null && dataIndex >= 0 && dataIndex < data.Count) if (serieData != null && dataIndex >= 0 && dataIndex < serieData.data.Count)
{ {
var value = (float) data[dataIndex] * m_DataScale; var value = (float) serieData.data[dataIndex] * m_DataScale;
if (m_MinSize != 0 && value < m_MinSize) value = m_MinSize; if (m_MinSize != 0 && value < m_MinSize) value = m_MinSize;
if (m_MaxSize != 0 && value > m_MaxSize) value = m_MaxSize; if (m_MaxSize != 0 && value > m_MaxSize) value = m_MaxSize;
return value; return value;
@@ -173,7 +171,7 @@ namespace XCharts.Runtime
return size == 0 ? themeSize : size; return size == 0 ? themeSize : size;
} }
case SymbolSizeType.Function: case SymbolSizeType.Function:
if (data != null && sizeFunction != null) return sizeFunction(data); if (sizeFunction != null) return sizeFunction(themeSize, serieData);
else return size == 0 ? themeSize : size; else return size == 0 ? themeSize : size;
default: default:
return size == 0 ? themeSize : size; return size == 0 ? themeSize : size;

View File

@@ -18,9 +18,7 @@ namespace XCharts.Runtime
/// <summary> /// <summary>
/// 获取标记大小的回调。 /// 获取标记大小的回调。
/// </summary> /// </summary>
/// <param name="data"></param> public delegate float SymbolSizeFunction(float defaultSize, SerieData serieData);
/// <returns></returns>
public delegate float SymbolSizeFunction(List<double> data);
public delegate void CustomDrawGaugePointerFunction(VertexHelper vh, int serieIndex, int dataIndex, float currentAngle); public delegate void CustomDrawGaugePointerFunction(VertexHelper vh, int serieIndex, int dataIndex, float currentAngle);
/// <summary> /// <summary>
/// DataZoom的start和end变更时的委托方法。 /// DataZoom的start和end变更时的委托方法。

View File

@@ -31,7 +31,7 @@ namespace XCharts.Runtime
foreach (var serieData in serie.data) foreach (var serieData in serie.data)
{ {
var symbol = SerieHelper.GetSerieSymbol(serie, serieData); var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); var symbolSize = symbol.GetSize(serieData, chart.theme.serie.lineSymbolSize);
serieData.context.highlight = false; serieData.context.highlight = false;
serieData.interact.SetValue(ref needAnimation1, symbolSize); serieData.interact.SetValue(ref needAnimation1, symbolSize);
} }

View File

@@ -31,7 +31,7 @@ namespace XCharts.Runtime
foreach (var serieData in serie.data) foreach (var serieData in serie.data)
{ {
var symbol = SerieHelper.GetSerieSymbol(serie, serieData); var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); var symbolSize = symbol.GetSize(serieData, chart.theme.serie.lineSymbolSize);
serieData.context.highlight = false; serieData.context.highlight = false;
serieData.interact.SetValue(ref needAnimation1, symbolSize); serieData.interact.SetValue(ref needAnimation1, symbolSize);
} }

View File

@@ -31,7 +31,7 @@ namespace XCharts.Runtime
foreach (var serieData in serie.data) foreach (var serieData in serie.data)
{ {
var symbol = SerieHelper.GetSerieSymbol(serie, serieData); var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); var symbolSize = symbol.GetSize(serieData, chart.theme.serie.lineSymbolSize);
serieData.context.highlight = false; serieData.context.highlight = false;
serieData.interact.SetValue(ref needAnimation1, symbolSize); serieData.interact.SetValue(ref needAnimation1, symbolSize);
} }

View File

@@ -50,7 +50,7 @@ namespace XCharts.Runtime
foreach (var serieData in serie.data) foreach (var serieData in serie.data)
{ {
var symbol = SerieHelper.GetSerieSymbol(serie, serieData); var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); var symbolSize = symbol.GetSize(serieData, chart.theme.serie.lineSymbolSize);
serieData.context.highlight = false; serieData.context.highlight = false;
serieData.interact.SetValue(ref needAnimation1, symbolSize); serieData.interact.SetValue(ref needAnimation1, symbolSize);
} }

View File

@@ -123,7 +123,7 @@ namespace XCharts.Runtime
{ {
var serieData = serie.data[i]; var serieData = serie.data[i];
var symbol = SerieHelper.GetSerieSymbol(serie, serieData); var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize); var symbolSize = symbol.GetSize(serieData, chart.theme.serie.lineSymbolSize);
if (m_LegendEnter) if (m_LegendEnter)
{ {
serieData.context.highlight = true; serieData.context.highlight = true;

View File

@@ -705,7 +705,7 @@ namespace XCharts.Runtime
if (stateStyle == null) if (stateStyle == null)
{ {
var symbol = GetSerieSymbol(serie, serieData, SerieState.Normal); var symbol = GetSerieSymbol(serie, serieData, SerieState.Normal);
size = symbol.GetSize(serieData == null ? null : serieData.data, defaultSize); size = symbol.GetSize(serieData, defaultSize);
switch (state) switch (state)
{ {
case SerieState.Emphasis: case SerieState.Emphasis:
@@ -719,7 +719,7 @@ namespace XCharts.Runtime
else else
{ {
var symbol = stateStyle.symbol; var symbol = stateStyle.symbol;
size = symbol.GetSize(serieData == null ? null : serieData.data, defaultSize); size = symbol.GetSize(serieData, defaultSize);
} }
if (serieData != null && checkAnimation) if (serieData != null && checkAnimation)
{ {