重构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
* (2025.02.05) 重构`SerieSymbol``sizeFunction`参数
* (2025.01.23) 修复`Treemap``Label`不显示的问题
* (2025.01.15) 修复`Chart`在运行时动态添加`Component`异常的问题 (#339)
* (2025.01.08) 修复`TextMeshPro`关闭时残留组件影响`Text`初始化的问题

View File

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

View File

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

View File

@@ -31,7 +31,7 @@ namespace XCharts.Runtime
foreach (var serieData in serie.data)
{
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.interact.SetValue(ref needAnimation1, symbolSize);
}

View File

@@ -31,7 +31,7 @@ namespace XCharts.Runtime
foreach (var serieData in serie.data)
{
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.interact.SetValue(ref needAnimation1, symbolSize);
}

View File

@@ -31,7 +31,7 @@ namespace XCharts.Runtime
foreach (var serieData in serie.data)
{
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.interact.SetValue(ref needAnimation1, symbolSize);
}

View File

@@ -50,7 +50,7 @@ namespace XCharts.Runtime
foreach (var serieData in serie.data)
{
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.interact.SetValue(ref needAnimation1, symbolSize);
}

View File

@@ -123,7 +123,7 @@ namespace XCharts.Runtime
{
var serieData = serie.data[i];
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)
{
serieData.context.highlight = true;

View File

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