mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-19 15:00:08 +00:00
修复MarkLine在开启Clip后还绘制在坐标系外的问题
This commit is contained in:
@@ -78,6 +78,7 @@ slug: /changelog
|
||||
|
||||
日志详情:
|
||||
|
||||
* (2023.08.25) 修复`MarkLine`在开启`Clip`后还绘制在坐标系外的问题
|
||||
* (2023.08.24) 优化`YAxis`在数据全为0时默认设置0-1的范围
|
||||
* (2023.08.23) 修复`YAxis`的`Label`可能会重复的问题
|
||||
* (2023.08.22) 修复`Bar`显示隐藏时绘制表现异常的问题
|
||||
|
||||
@@ -129,6 +129,7 @@ namespace XCharts.Runtime
|
||||
public Vector3 runtimeCurrentEndPosition { get; internal set; }
|
||||
public ChartLabel runtimeLabel { get; internal set; }
|
||||
public double runtimeValue { get; internal set; }
|
||||
public bool runtimeInGrid { get; internal set; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the marker, which will display as a label.
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace XCharts.Runtime
|
||||
if (data.runtimeLabel != null)
|
||||
{
|
||||
var pos = MarkLineHelper.GetLabelPosition(data);
|
||||
data.runtimeLabel.SetActive(data.label.show && pos != Vector3.zero);
|
||||
data.runtimeLabel.SetActive(data.label.show && data.runtimeInGrid);
|
||||
data.runtimeLabel.SetPosition(pos);
|
||||
data.runtimeLabel.SetText(MarkLineHelper.GetFormatterContent(serie, data));
|
||||
}
|
||||
@@ -49,7 +49,7 @@ namespace XCharts.Runtime
|
||||
var serie = chart.GetSerie(markLine.serieIndex);
|
||||
if (!serie.show || !markLine.show) return;
|
||||
ResetTempMarkLineGroupData(markLine);
|
||||
var serieColor = (Color) chart.GetItemColor(serie);
|
||||
var serieColor = (Color)chart.GetItemColor(serie);
|
||||
if (m_TempGroupData.Count > 0)
|
||||
{
|
||||
foreach (var kv in m_TempGroupData)
|
||||
@@ -71,7 +71,7 @@ namespace XCharts.Runtime
|
||||
private void InitMarkLineLabel(Serie serie, MarkLineData data, Color serieColor)
|
||||
{
|
||||
data.painter = chart.m_PainterUpper;
|
||||
data.refreshComponent = delegate()
|
||||
data.refreshComponent = delegate ()
|
||||
{
|
||||
var textName = string.Format("markLine_{0}_{1}", serie.index, data.index);
|
||||
var content = MarkLineHelper.GetFormatterContent(serie, data);
|
||||
@@ -79,7 +79,7 @@ namespace XCharts.Runtime
|
||||
content, Color.clear, TextAnchor.MiddleCenter);
|
||||
var pos = MarkLineHelper.GetLabelPosition(data);
|
||||
label.SetIconActive(false);
|
||||
label.SetActive(data.label.show && pos != Vector3.zero);
|
||||
label.SetActive(data.label.show && data.runtimeInGrid);
|
||||
label.SetPosition(pos);
|
||||
data.runtimeLabel = label;
|
||||
};
|
||||
@@ -218,9 +218,17 @@ namespace XCharts.Runtime
|
||||
{
|
||||
if (!animation.IsFinish())
|
||||
ep = Vector3.Lerp(sp, ep, animation.GetCurrDetail());
|
||||
if ((!chart.IsInChart(sp) && !chart.IsInChart(ep)) ||
|
||||
(serie.clip && !grid.Contains(sp) && !grid.Contains(ep)))
|
||||
{
|
||||
data.runtimeInGrid = false;
|
||||
m_RefreshLabel = true;
|
||||
return;
|
||||
}
|
||||
data.runtimeCurrentEndPosition = ep;
|
||||
if (sp != Vector3.zero || ep != Vector3.zero)
|
||||
{
|
||||
data.runtimeInGrid = true;
|
||||
m_RefreshLabel = true;
|
||||
chart.ClampInChart(ref sp);
|
||||
chart.ClampInChart(ref ep);
|
||||
@@ -247,7 +255,7 @@ namespace XCharts.Runtime
|
||||
Color32 borderColor;
|
||||
SerieHelper.GetSymbolInfo(out borderColor, out tickness, out cornerRadius, serie, null, chart.theme);
|
||||
chart.DrawClipSymbol(vh, symbol.type, symbol.size, tickness, pos, lineColor, lineColor,
|
||||
ColorUtil.clearColor32, borderColor, symbol.gap, true, cornerRadius, grid, startPos);
|
||||
ColorUtil.clearColor32, borderColor, symbol.gap, serie.clip, cornerRadius, grid, startPos);
|
||||
}
|
||||
|
||||
private void GetStartEndPos(Axis xAxis, Axis yAxis, GridCoord grid, double value, ref Vector3 sp, ref Vector3 ep)
|
||||
|
||||
Reference in New Issue
Block a user