protected static void OnRangeChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { Axis2D axis2DLocal = ((Axis2D)obj); Range desiredRange = (Range)e.NewValue; if (Double.IsNegativeInfinity(desiredRange.Min) || Double.IsNaN(desiredRange.Min) || Double.IsPositiveInfinity(desiredRange.Max) || Double.IsNaN(desiredRange.Max)) { axis2DLocal.SetValue(RangeProperty, e.OldValue); } if (axis2DLocal.AxisType == AxisType.Log) { if (desiredRange.Min <= 0 || desiredRange.Max <= 0) { axis2DLocal.SetValue(RangeProperty, e.OldValue); } } else if (axis2DLocal.AxisType == AxisType.Date) { if (desiredRange.Min < Axis.minDate || desiredRange.Max >= Axis.maxDate) { axis2DLocal.SetValue(RangeProperty, e.OldValue); } } double length = Math.Abs(desiredRange.Length); if ((Math.Abs(desiredRange.Min) / length > 1e10) || (Math.Abs(desiredRange.Max) / length > 1e10)) { axis2DLocal.SetValue(RangeProperty, e.OldValue); } axis2DLocal.DeriveTicks(); if (axis2DLocal.PlotPanel != null) { axis2DLocal.PlotPanel.InvalidateMeasure(); } }
public void AdjustRange(Axis2D axis) { Range axisRange = GetRangeFromChildren(axis); if (axisRange.Length != 0) axis.SetValue(Axis2D.RangeProperty, axisRange); }