If you think about it, as you zoom in, the software must override the initial decimal precision, in order that the axes labels continue to reflect the resolution of the current scale, rather than the original scale. To not do so would be an error.
That said, you can just subclass the ChartZoom class, and add your own processing at the end of the zoom operation, overriding the calculated settings.
private class CustomZoom : ChartZoom
{
SimpleZoom comp = null;
public CustomZoom(SimpleZoom component, PhysicalCoordinates transform, bool brescale)
:
base(component, transform, brescale)
{
comp = component;
}
public override void OnMouseUp(MouseEventArgs mouseevent)
{
base.OnMouseUp(mouseevent);
// yAxisLab was made global to the SimpleZoom class,
// so it can be accessed here
comp.yAxisLab.AxisLabelsDecimalPos = 4;
}
}
.
.
.
.
// In graph building method
CustomZoom zoomObj = new CustomZoom(this, pTransform1, true);
chartVu.SetCurrentMouseListener(zoomObj);