public override bool IsVisibleOnChart(ChartControl chartControl, ChartScale chartScale, DateTime firstTimeOnChart, DateTime lastTimeOnChart) { if (DrawingState == DrawingState.Building) { return(true); } float minX = float.MaxValue; float maxX = float.MinValue; ChartPanel chartPanel = chartControl.ChartPanels[PanelIndex]; foreach (Point pt in ChartAnchors.Select(a => a.GetPoint(chartControl, chartPanel, chartScale))) { minX = (float)Math.Min(minX, pt.X); maxX = (float)Math.Max(maxX, pt.X); } DateTime leftWidthTime = chartControl.GetTimeByX((int)minX); DateTime rightWidthTime = chartControl.GetTimeByX((int)maxX); return(leftWidthTime <= lastTimeOnChart && rightWidthTime >= firstTimeOnChart); }