[feature] 增加SeriemarkColor可设置标识颜色用于LegendTooltip的展示 (#229)

This commit is contained in:
monitor1394
2022-10-29 18:25:20 +08:00
parent cc63764eef
commit e0974fffbe
10 changed files with 46 additions and 7 deletions

View File

@@ -59,6 +59,7 @@
## master ## master
* (2022.10.29) 增加`Serie``markColor`可设置标识颜色用于`Legend``Tooltip`的展示 (#229)
* (2022.10.26) 增加`RadarCoord``startAngle`可设置`Radar`起始角度 * (2022.10.26) 增加`RadarCoord``startAngle`可设置`Radar`起始角度
* (2022.10.21) 修复`Chart`在受`Layout`控制时`Label`显示不正常的问题 (#231) * (2022.10.21) 修复`Chart`在受`Layout`控制时`Label`显示不正常的问题 (#231)
* (2022.10.21) 修复`Unity2019.2`上的兼容问题 * (2022.10.21) 修复`Unity2019.2`上的兼容问题

View File

@@ -47,6 +47,7 @@ namespace XCharts.Editor
PropertyField("m_Large"); PropertyField("m_Large");
PropertyField("m_LargeThreshold"); PropertyField("m_LargeThreshold");
PropertyField("m_PlaceHolder"); PropertyField("m_PlaceHolder");
PropertyField("m_MarkColor");
}); });
PropertyField("m_ItemStyle"); PropertyField("m_ItemStyle");
PropertyField("m_Animation"); PropertyField("m_Animation");

View File

@@ -37,6 +37,7 @@ namespace XCharts.Editor
PropertyField("m_ShowAsPositiveNumber"); PropertyField("m_ShowAsPositiveNumber");
PropertyField("m_Large"); PropertyField("m_Large");
PropertyField("m_LargeThreshold"); PropertyField("m_LargeThreshold");
PropertyField("m_MarkColor");
}); });
PropertyField("m_Symbol"); PropertyField("m_Symbol");
PropertyField("m_LineStyle"); PropertyField("m_LineStyle");

View File

@@ -568,6 +568,25 @@ namespace XCharts.Runtime
return theme.GetBackgroundColor(background); return theme.GetBackgroundColor(background);
} }
[Since("v3.4.0")]
/// <summary>
/// 获得Serie的标识颜色。
/// </summary>
/// <param name="serie"></param>
/// <param name="serieData"></param>
/// <returns></returns>
public Color32 GetMarkColor(Serie serie, SerieData serieData)
{
if (ChartHelper.IsClearColor(serie.markColor))
{
return GetItemColor(serie, serieData);
}
else
{
return serie.markColor;
}
}
public Color32 GetItemColor(Serie serie, SerieData serieData) public Color32 GetItemColor(Serie serie, SerieData serieData)
{ {
Color32 color, toColor; Color32 color, toColor;

View File

@@ -29,7 +29,7 @@ namespace XCharts.Runtime
title = category; title = category;
var color = chart.GetItemColor(serie, serieData); var color = chart.GetMarkColor(serie, serieData);
var newMarker = SerieHelper.GetItemMarker(serie, serieData, marker); var newMarker = SerieHelper.GetItemMarker(serie, serieData, marker);
var newItemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter); var newItemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter);
var newNumericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter); var newNumericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter);

View File

@@ -29,7 +29,7 @@ namespace XCharts.Runtime
title = category; title = category;
var color = chart.GetItemColor(serie, serieData); var color = chart.GetMarkColor(serie, serieData);
var newMarker = SerieHelper.GetItemMarker(serie, serieData, marker); var newMarker = SerieHelper.GetItemMarker(serie, serieData, marker);
var newItemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter); var newItemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter);
var newNumericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter); var newNumericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter);

View File

@@ -37,7 +37,7 @@ namespace XCharts.Runtime
param.dimension = 1; param.dimension = 1;
param.dataCount = serie.dataCount; param.dataCount = serie.dataCount;
param.serieData = serieData; param.serieData = serieData;
param.color = chart.GetItemColor(serie, serieData); param.color = chart.GetMarkColor(serie, serieData);
param.marker = SerieHelper.GetItemMarker(serie, serieData, marker); param.marker = SerieHelper.GetItemMarker(serie, serieData, marker);
param.itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter); param.itemFormatter = SerieHelper.GetItemFormatter(serie, serieData, itemFormatter);
param.numericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter); param.numericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter);

View File

@@ -230,6 +230,7 @@ namespace XCharts.Runtime
[SerializeField] private string m_SerieName; [SerializeField] private string m_SerieName;
[SerializeField][Since("v3.2.0")] private SerieState m_State = SerieState.Normal; [SerializeField][Since("v3.2.0")] private SerieState m_State = SerieState.Normal;
[SerializeField][Since("v3.2.0")] private SerieColorBy m_ColorBy = SerieColorBy.Default; [SerializeField][Since("v3.2.0")] private SerieColorBy m_ColorBy = SerieColorBy.Default;
[SerializeField][Since("v3.4.0")] private Color32 m_MarkColor;
[SerializeField] private string m_Stack; [SerializeField] private string m_Stack;
[SerializeField] private int m_XAxisIndex = 0; [SerializeField] private int m_XAxisIndex = 0;
[SerializeField] private int m_YAxisIndex = 0; [SerializeField] private int m_YAxisIndex = 0;
@@ -374,6 +375,15 @@ namespace XCharts.Runtime
set { if (PropertyUtil.SetStruct(ref m_ColorBy, value)) { SetAllDirty(); } } set { if (PropertyUtil.SetStruct(ref m_ColorBy, value)) { SetAllDirty(); } }
} }
/// <summary> /// <summary>
/// Serie's mark color. It is only used to display Legend and Tooltip, and does not affect the drawing color. The default value is clear.
/// |Serie的标识颜色。仅用于Legend和Tooltip的展示不影响绘制颜色默认为clear。
/// </summary>
public Color32 markColor
{
get { return m_MarkColor; }
set { if (PropertyUtil.SetStruct(ref m_MarkColor, value)) { SetAllDirty(); } }
}
/// <summary>
/// If stack the value. On the same category axis, the series with the same stack name would be put on top of each other. /// If stack the value. On the same category axis, the series with the same stack name would be put on top of each other.
/// |数据堆叠同个类目轴上系列配置相同的stack值后后一个系列的值会在前一个系列的值上相加。 /// |数据堆叠同个类目轴上系列配置相同的stack值后后一个系列的值会在前一个系列的值上相加。
/// </summary> /// </summary>

View File

@@ -528,7 +528,7 @@ namespace XCharts.Runtime
param.value = serieData.GetData(dimension); param.value = serieData.GetData(dimension);
param.ignore = ignore; param.ignore = ignore;
param.total = serie.yTotal; param.total = serie.yTotal;
param.color = chart.GetItemColor(serie, serieData); param.color = chart.GetMarkColor(serie, serieData);
param.marker = SerieHelper.GetItemMarker(serie, serieData, marker); param.marker = SerieHelper.GetItemMarker(serie, serieData, marker);
param.itemFormatter = itemFormatter; param.itemFormatter = itemFormatter;
param.numericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter); param.numericFormatter = SerieHelper.GetNumericFormatter(serie, serieData, numericFormatter);

View File

@@ -106,9 +106,16 @@ namespace XCharts.Runtime
break; break;
} }
} }
Color32 color, toColor; if (ChartHelper.IsClearColor(destSerie.markColor))
SerieHelper.GetItemColor(out color, out toColor, destSerie, destSerieData, chart.theme, index, SerieState.Normal); {
return color; Color32 color, toColor;
SerieHelper.GetItemColor(out color, out toColor, destSerie, destSerieData, chart.theme, index, SerieState.Normal);
return color;
}
else
{
return destSerie.markColor;
}
} }
/// <summary> /// <summary>