public override void ScrollToValue(double position) { double num = this.ActualViewMaximum - this.ActualViewMinimum; double min = position; double max = position + num; RangeHelper.BoxRangeInsideAnother(ref min, ref max, this.ActualMinimum, this.ActualMaximum); double precision = DoubleHelper.GetPrecision(new double[2] { min, this.ActualViewMinimum }); if (DoubleHelper.EqualsWithPrecision(min, this.ActualViewMinimum, precision)) { return; } this._majorSequence.MoveToCover((DoubleR10)min, (DoubleR10)max); this.CalculateMinorSequence(this.MaxCount * 5, this.GetMaxAllowedMargin(this.MaxCount)); this.BeginInit(); this.ViewMinimum = new double?(this.ActualViewMinimum = min); this.ViewMaximum = new double?(this.ActualViewMaximum = max); this.IsScrolling = true; this.EndInit(); }
public override void ScrollToValue(DateTime position) { long ticks1 = this.ActualViewMaximum.Ticks; long ticks2 = this.ActualViewMinimum.Ticks; long num = ticks1 - ticks2; long ticks3 = position.Ticks; long min1 = ticks3; long max1 = ticks3 + num; RangeHelper.BoxRangeInsideAnother(ref min1, ref max1, this.ActualMinimum.Ticks, this.ActualMaximum.Ticks); if (min1 == ticks2) { return; } DateTime min2 = new DateTime(min1); DateTime max2 = new DateTime(max1); this._majorSequence.MoveToCover(min2, max2); this._minorSequence.MoveToCover(min2, max2); this.BeginInit(); this.ViewMinimum = new DateTime?(this.ActualViewMinimum = min2); this.ViewMaximum = new DateTime?(this.ActualViewMaximum = max2); this.IsScrolling = true; this.EndInit(); }
internal override void BoxViewRange(ref DateTime viewMinimum, ref DateTime viewMaximum) { long ticks1 = viewMinimum.Ticks; long ticks2 = viewMaximum.Ticks; RangeHelper.BoxRangeInsideAnother(ref ticks1, ref ticks2, this.ActualMinimum.Ticks, this.ActualMaximum.Ticks); viewMinimum = new DateTime(ticks1); viewMaximum = new DateTime(ticks2); }
public override void ZoomToPercent(double viewMinimum, double viewMaximum) { double minSize = 1.0 / this.ActualZoomRange.Maximum; double maxSize = 1.0 / this.ActualZoomRange.Minimum; RangeHelper.BoxRangeInsideAnother(ref viewMinimum, ref viewMaximum, 0.0, 1.0, minSize, maxSize, 0.01); Range <double> targetRange = new Range <double>(this.ActualMinimum, this.ActualMaximum); this.ZoomToValue(RangeHelper.Project(Scale.PercentRange, viewMinimum, targetRange), RangeHelper.Project(Scale.PercentRange, viewMaximum, targetRange)); }
internal virtual void CalculateActualZoomRange() { Range <double> range = this.ZoomRange.HasValue ? this.ZoomRange.Value : Scale.DefaultZoomRange; double minimum = range.Minimum; double maximum = range.Maximum; double minPossibleZoom = this.GetMinPossibleZoom(); double maxPossibleZoom = this.GetMaxPossibleZoom(); RangeHelper.BoxRangeInsideAnother(ref minimum, ref maximum, minPossibleZoom, maxPossibleZoom); this.ActualZoomRange = new Range <double>(minimum, maximum); }
internal override void BoxViewRange(ref double viewMinimum, ref double viewMaximum) { RangeHelper.BoxRangeInsideAnother(ref viewMinimum, ref viewMaximum, this.ActualMinimum, this.ActualMaximum); }