From 584ef9a8348a4aa533ad9540096dc56017cb6df8 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Mon, 25 May 2026 22:19:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96`DataZoom`=E7=9A=84`Marquee`?= =?UTF-8?q?=E6=A1=86=E9=80=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/Component/Axis/AxisHandler.cs | 10 ++-------- Runtime/Component/DataZoom/DataZoomHandler.cs | 9 +++++---- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/Runtime/Component/Axis/AxisHandler.cs b/Runtime/Component/Axis/AxisHandler.cs index 540dbc49..0d76972e 100644 --- a/Runtime/Component/Axis/AxisHandler.cs +++ b/Runtime/Component/Axis/AxisHandler.cs @@ -122,10 +122,7 @@ namespace XCharts { if (axis is YAxis) { - var yRate = axis.context.minMaxRange / grid.context.height; - var yValue = yRate * (chart.pointerPos.y - grid.context.y - axis.context.offset); - if (axis.context.minValue > 0) - yValue += axis.context.minValue; + var yValue = axis.context.minValue + (chart.pointerPos.y - grid.context.y) / grid.context.height * axis.context.minMaxRange; if (axis.inverse) yValue = -yValue; @@ -152,10 +149,7 @@ namespace XCharts } else { - var xRate = axis.context.minMaxRange / grid.context.width; - xValue = xRate * (chart.pointerPos.x - grid.context.x - axis.context.offset); - if (axis.context.minValue > 0) - xValue += axis.context.minValue; + xValue = axis.context.minValue + (chart.pointerPos.x - grid.context.x) / grid.context.width * axis.context.minMaxRange; if (axis.inverse) xValue = -xValue; } diff --git a/Runtime/Component/DataZoom/DataZoomHandler.cs b/Runtime/Component/DataZoom/DataZoomHandler.cs index 8e5d48a4..62f48474 100644 --- a/Runtime/Component/DataZoom/DataZoomHandler.cs +++ b/Runtime/Component/DataZoom/DataZoomHandler.cs @@ -117,7 +117,7 @@ namespace XCharts.Runtime dataZoom.context.isCoordinateDrag = true; } } - if (dataZoom.supportMarquee) + if (dataZoom.supportMarquee && grid.Contains(pos)) { dataZoom.context.isMarqueeDrag = true; dataZoom.context.marqueeStartPos = pos; @@ -167,7 +167,7 @@ namespace XCharts.Runtime var dataZoom = component; var grid = chart.GetGridOfDataZoom(dataZoom); - if (dataZoom.supportMarquee) + if (dataZoom.supportMarquee && dataZoom.context.isMarqueeDrag) { Vector2 pos; if (!chart.ScreenPointToChartPoint(eventData.position, out pos)) @@ -211,7 +211,7 @@ namespace XCharts.Runtime var dataZoom = component; - if (dataZoom.supportMarquee) + if (dataZoom.supportMarquee && dataZoom.context.isMarqueeDrag) { dataZoom.context.isMarqueeDrag = false; if (dataZoom.marqueeStyle.apply) @@ -264,7 +264,8 @@ namespace XCharts.Runtime var dataZoom = component; var grid = chart.GetGridOfDataZoom(dataZoom); if (dataZoom.IsInStartZoom(localPos) || - dataZoom.IsInEndZoom(localPos)) + dataZoom.IsInEndZoom(localPos) || + dataZoom.IsInSelectedZoom(localPos)) { return; }