usar personalizar como c# charts tooltip hittest

personalizar - Muestra el valor de la serie sobre cualquier punto en el gráfico usando tooltip c#



personalizar tooltip c# (1)

Entonces la solución fue no usar un HitTest. En cambio, si usa PixelPositionToValue, funciona mucho mejor. Incluiré el código a continuación.

private void chData_MouseMove(object sender, MouseEventArgs e) { try { int cursorX = Convert.ToInt32(chData.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X)); tipInfo = "Bat 1: " + ch1Array[cursorX].ToString("0.00") + Environment.NewLine + "Bat 2: " + ch2Array[cursorX].ToString("0.00") + Environment.NewLine; tooltip.SetToolTip(chData, tipInfo); } catch { } }

Así que he visto muchos ejemplos sobre el uso de la información sobre herramientas para mostrar los datos de gráficos cuando se pasa sobre un punto de datos, pero esperaba mostrar los valores cuando mi mouse está simplemente sobre el gráfico y no necesariamente sobre un punto de datos particular (es decir, el espacio en blanco en todos lados). También me gustaría tener un pequeño círculo o cuadrado en el punto de datos en sí, pero eso puede venir más tarde. ¿Puede alguien decirme cómo hacer esto? Voy a incluir mi código actual a continuación.

private void chData_MouseMove(object sender, MouseEventArgs e) { HitTestResult pos = chData.HitTest(e.X, e.Y); if (pos.ChartElementType == ChartElementType.DataPoint) { string tipInfo; tipInfo = "Bat 1: " + ch1Array[pos.PointIndex].ToString("0.00") + Environment.NewLine + "Bat 2: " + ch2Array[pos.PointIndex].ToString("0.00") + Environment.NewLine; tooltip.SetToolTip(chData, tipInfo); } }

Voy a adivinar que tengo que cambiar el argumento de la declaración if, pero no estoy seguro de qué.
¡Cualquier ayuda es muy apreciada!