缩放后缺少C#图表Y间隔线
我对C#Chart(在System.Windows.Forms.DataVisualization.Charting命名空间中)仍然有问题。 当我在Y轴上缩放时,有时不会重画间隔线。 请看下图,0下缺少间隔线 通常情况下,不会出现问题,会绘制11条间隔线缩放后缺少C#图表Y间隔线,c#,charts,intervals,yaxis,C#,Charts,Intervals,Yaxis,我对C#Chart(在System.Windows.Forms.DataVisualization.Charting命名空间中)仍然有问题。 当我在Y轴上缩放时,有时不会重画间隔线。 请看下图,0下缺少间隔线 通常情况下,不会出现问题,会绘制11条间隔线 private void chart1_AxisViewChanged(object sender, ViewEventArgs e) { if ((e != null) && (send
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间隔被正确地重新绘制
有什么方法解决了这个问题吗?当您设置
e.ChartArea.AxisY.Interval
时,是否也可以设置…MajorGrid.Interval
?另外:如果我单击滚动条,11间隔将正确地重新绘制。你点击哪里?是视图再次更改,还是只需单击电梯而不移动它?您还可以在图表区域上强制执行重新计算eAxesCale
。。或者简单地尝试一下常见的怀疑:Refresh()
、Invalidate()
或Update()
。您好,我已经尝试添加了e.ChartArea.AxisY.MajorGrid.Interval=e.ChartArea.AxisY.Interval,但结果相同。我还尝试过重新计算EAXESSCALE,效果如何。但是我会尝试Refresh()和Update(),并告诉您是否有任何改进。当我单击滚动条(在上/下箭头上)时,图表区域将以正确的间隔数重新绘制。