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); } }
private void regenPart(Range <DateTime> range) { long length = range.Max.Ticks - range.Min.Ticks; DateTime start = (DateTime.MinValue.Ticks > range.Min.Ticks - length)?(DateTime.MinValue):(new DateTime(range.Min.Ticks - length)); DateTime end = (DateTime.MaxValue.Ticks < range.Max.Ticks + length)?(DateTime.MaxValue):(new DateTime(range.Max.Ticks + length)); activeRange = new Range <DateTime>(start, end); resultArray[0] = activeRange; activePart = new DateTimeAxisPart(range.Min, range.Max); activePart.Control.LabelProvider = parentAxis.LabelProvider.Clone(); if (parentAxis.MayorLabelProvider != null) { activePart.Control.MayorLabelProvider = parentAxis.MayorLabelProvider.Clone(); } activePart.Control.TicksProvider = parentAxis.TicksProvider.Clone(); activePart.Control.ConvertToDouble = parentAxis.ConvertToDouble; activePart.Control.Placement = parentAxis.Placement; activePart.Control.Range = activeRange; }
public void CleanCach() { inited = false; activePart = null; }