public AxisPartControl <DateTime> GetPart(Range <DateTime> r)
        {
            DateTime center = new DateTime((r.Min.Ticks + r.Max.Ticks) / 2);

            IAxisPart <DateTime> part = storage.GetPart(r, center);

            if (part != null)
            {
                return(part.Control);
            }
            else
            {
                DateTimeAxisPart dnPart = new DateTimeAxisPart(r.Min, r.Max);
                dnPart.Control.LabelProvider = parentAxis.LabelProvider.Clone();
                if (parentAxis.MayorLabelProvider != null)
                {
                    dnPart.Control.MayorLabelProvider = parentAxis.MayorLabelProvider.Clone();
                }
                dnPart.Control.TicksProvider   = parentAxis.TicksProvider.Clone();
                dnPart.Control.ConvertToDouble = parentAxis.ConvertToDouble;
                dnPart.Control.Placement       = parentAxis.Placement;
                dnPart.Control.Range           = r;

                storage.AddPart(dnPart);
                return(storage.GetPart(r, center).Control);
            }
        }
        public AxisPartControl <double> GetPart(Range <double> r)
        {
            double center = (r.Min + r.Max) / 2;

            IAxisPart <double> part = storage.GetPart(r, center);

            if (part != null)
            {
                return(part.Control);
            }
            else
            {
                NumericAxisPart numPart = new NumericAxisPart(r.Min, r.Max);
                numPart.Control.LabelProvider   = parentAxis.LabelProvider.Clone();
                numPart.Control.TicksProvider   = parentAxis.TicksProvider.Clone();
                numPart.Control.ConvertToDouble = parentAxis.ConvertToDouble;
                numPart.Control.Placement       = parentAxis.Placement;
                numPart.Control.Range           = r;

                storage.AddPart(numPart);
                return(storage.GetPart(r, center).Control);
            }
        }
 public void AddPart(IAxisPart <T> part)
 {
     storage.Add(part);
 }