我仍然对 C# Chart 有问题(在 System.Windows.Forms.DataVisualization.Charting 命名空间中)。当我放大 Y 轴时,有时不会重绘间隔线。看下图,0下缺少区间线。缺少区间线
通常没有问题,画出11条区间线。
private void chart1_AxisViewChanged(object sender, ViewEventArgs e)
{
if ((e != null) && (sender != null))
{
// on ne récupère que les évènement concernant l'axe Y. L'axe X se gère tout seul car il est unique
if (e.Axis.AxisName.ToString() == "Y")
{
// AxisY.ScaleView.ViewMinimum is the minimum Y axis value displayed. It contains the offset to apply to label, grid and interval on Y axis
e.ChartArea.AxisY.IntervalOffset = (e.ChartArea.AxisY.Interval - e.ChartArea.AxisY.ScaleView.ViewMinimum) % e.ChartArea.AxisY.Interval;
// To update Y axis label, major grid and interval.
e.ChartArea.AxisY.Interval = (e.ChartArea.AxisY.ScaleView.ViewMaximum - e.ChartArea.AxisY.ScaleView.ViewMinimum) / 11;
}
}
}
以上是我的axisViewChanged 事件。
Y轴声明如下
chartArea1.AxisY.Interval = (sens.dMaximumValue - sens.dMinimumValue)/11.0;
chartArea1.AxisY.IntervalOffsetType = DateTimeIntervalType.Number;
chartArea1.AxisY.IntervalType = DateTimeIntervalType.Number;
chartArea1.AxisY.LabelStyle.Format = ".000";
chartArea1.AxisY.MajorGrid.LineColor = Color.White; // Color.DarkViolet;
chartArea1.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash;
chartArea1.AxisY.MajorTickMark.Enabled = false;
chartArea1.AxisY.Maximum = sens.dMaximumValue*1.1;
chartArea1.AxisY.Minimum = sens.dMinimumValue*1.1;
chartArea1.AxisY.ScaleView.MinSize = 0.01D;
chartArea1.AxisY.ScaleView.SmallScrollMinSize = 0.001D;
chartArea1.AxisY.ScrollBar.BackColor = Color.White;
chartArea1.AxisY.ScrollBar.ButtonColor = Color.LightGray;
如您所见,它被声明为数字,我认为这是正确的。
出现此问题时,如果我单击滚动条,则会正确重绘 11 间隔。
有什么解决了这个问题吗?