mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-21 16:00:24 +00:00
重构SerieSymbol的sizeFunction参数
This commit is contained in:
@@ -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`初始化的问题
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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变更时的委托方法。
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user