简体   繁体   中英

Why do my X-Axes labels disappear when I zoom using MS Chart Controls?

I'm using MS Chart Controls. The line chart is a normal time based chart. The problem is when I click the chart and select some time it zooms in, the scrollbar appears, and the x-axes labels disappears. How can I prevent this from happening? If I cannot fix it automatically, is there code I can add to a button that will fix the labels?

private void Chart0Configuration()
    {
        chart1.ChartAreas[0].Visible = false;
        chart1.ChartAreas[0].AlignmentOrientation = AreaAlignmentOrientations.Vertical;
        chart1.ChartAreas[0].AlignmentStyle = AreaAlignmentStyles.All;

        chart1.ChartAreas[0].Position.Auto = false;
        chart1.ChartAreas[0].Position.X = 2;
        chart1.ChartAreas[0].Position.Y = 10;
        chart1.ChartAreas[0].Position.Width = 98;
        //chart1.ChartAreas[0].Position.Height = *****variable


        //chart1.ChartAreas[0].AxisY.MajorTickMark.Enabled = false;
        //chart1.ChartAreas[0].AxisY.MinorTickMark.Enabled = false;
        //chart1.ChartAreas[0].AxisY.MajorGrid.Enabled = false;

        //chart1.ChartAreas[0].AxisX.MajorTickMark.Enabled = true;
        //chart1.ChartAreas[0].AxisX.MinorTickMark.Enabled = true;
        //chart1.ChartAreas[0].AxisX.MajorGrid.Enabled = true;
        //chart1.ChartAreas[0].AxisX.MajorTickMark.Interval = 10;

        chart1.ChartAreas[0].AxisX.Interval = 0;
        chart1.ChartAreas[0].AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount;

        chart1.ChartAreas[0].AxisX.LabelStyle.Enabled = true;
        //chart1.ChartAreas[0].AxisX.LabelStyle.Format = "hh:mm:ss";
        chart1.ChartAreas[0].AxisY.LabelStyle.IsEndLabelVisible = true;

        chart1.ChartAreas[0].InnerPlotPosition.Auto = false;
        chart1.ChartAreas[0].InnerPlotPosition.X = 3;
        chart1.ChartAreas[0].InnerPlotPosition.Y = 10;
        chart1.ChartAreas[0].InnerPlotPosition.Width = 88;
        chart1.ChartAreas[0].InnerPlotPosition.Height = 80;

        chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
        chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
        //chart1.ChartAreas[0].CursorX.AutoScroll = true;
        chart1.ChartAreas[0].CursorX.Position = 0;
        chart1.ChartAreas[0].CursorX.Interval = 0;


        chart1.ChartAreas[0].AxisX.ScrollBar.Size = 5;
        chart1.ChartAreas[0].AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.SmallScroll;
        chart1.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;
        chart1.ChartAreas[0].AxisX.ScrollBar.BackColor = Color.LightGray;
        chart1.ChartAreas[0].AxisX.ScrollBar.ButtonColor = Color.Gray;
        chart1.ChartAreas[0].AxisX.ScrollBar.LineColor = Color.Black;                               
        chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
    }

I inadvertently found the answer when looking at the intervals. They stay visible now that I've add the following line of code.

chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Days;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM