0

У меня есть приложение WinForms, который содержит элемент управления диаграммы под названиемКак обрезать значения x по оси X в управлении диаграммами в Winforms?

comparisonChart 

Я реализовал возможность масштабирования в элементе управления диаграммой, подписавшись на событие колеса прокрутки и выполнив следующие действия.

private void comparisonChartMouseWheel(object sender, MouseEventArgs e) 
    { 
     if (e.Delta < 0) 
     { 
      this.comparisonChart.ChartAreas[0].AxisX.ScaleView.ZoomReset(0); 
      this.comparisonChart.ChartAreas[0].AxisY.ScaleView.ZoomReset(0); 
     } 
     else if (e.Delta > 0) 
     { 
      double xMin = this.comparisonChart.ChartAreas[0].AxisX.ScaleView.ViewMinimum; 
      double xMax = this.comparisonChart.ChartAreas[0].AxisX.ScaleView.ViewMaximum; 
      double yMin = this.comparisonChart.ChartAreas[0].AxisY.ScaleView.ViewMinimum; 
      double yMax = this.comparisonChart.ChartAreas[0].AxisY.ScaleView.ViewMaximum; 
      double posXStart = this.comparisonChart.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X) - (xMax - xMin)/4; 
      double posXFinish = this.comparisonChart.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X) + (xMax - xMin)/4; 
      double posYStart = this.comparisonChart.ChartAreas[0].AxisY.PixelPositionToValue(e.Location.Y) - (yMax - yMin)/4; 
      double posYFinish = this.comparisonChart.ChartAreas[0].AxisY.PixelPositionToValue(e.Location.Y) + (yMax - yMin)/4; 
      this.comparisonChart.ChartAreas[0].AxisX.ScaleView.Zoom(posXStart, posXFinish); 
      this.comparisonChart.ChartAreas[0].AxisY.ScaleView.Zoom(posXStart, posXFinish); 
     } 

    } 

Когда я увеличиваю масштаб диаграммы, значения оси X показывают десятичные значения.

Чтобы удалить десятичные значения, я также выполнил следующее.

comparisonChart.Series[0].XValueType = ChartValueType.Int32; 

Но опять-таки это показывает десятичные значения, когда я приближать.

ответ

2

Контрольная карта как таковая не имеет этой логики.

Проверьте решение вопроса this.

Надеюсь, это поможет.

Редактировать: В то же время я пробовал приведенный ниже фрагмент кода в образце программы с кодом масштабирования. Теперь значения оси отображаются без десятичных знаков.

chart1.ChartAreas[0].AxisX.LabelStyle.Format = "0"; 
chart1.ChartAreas[0].AxisY.LabelStyle.Format = "0"; 
+0

Да, это было то, что я искал. Спасибо – Kaushik

+0

@ Kaushik - Рад помочь :) – Junaith

Смежные вопросы