У меня есть приложение 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;
Но опять-таки это показывает десятичные значения, когда я приближать.
Да, это было то, что я искал. Спасибо – Kaushik
@ Kaushik - Рад помочь :) – Junaith