private void Calculate(double x, bool set) { var width = ActualWidth - THICKNESS; var delta = _delta + x; delta = Math.Max(_tempMin * width, Math.Min(_tempMax * width, delta)); if (_target == MinimumThumb) { _minimum = delta / width; _value = Math.Max(_minimum, _value); } else if (_target == MiddleThumb1) { _minimum = delta / width; _maximum = (delta / width) + _distance; _value = Math.Max(_minimum, Math.Min(_maximum, _value)); } else if (_target == MiddleThumb2) { _value = delta / width; } else if (_target == MaximumThumb) { _maximum = delta / width; _value = Math.Min(_maximum, _value); } if (set) { Maximum = _maximum; Minimum = _minimum; Value = _value; MaximumChanged?.Invoke(this, _target == MaximumThumb ? _maximum : _target == MiddleThumb2 ? _value : _minimum); } else { MinimumChanged?.Invoke(this, _target == MaximumThumb ? _maximum : _target == MiddleThumb2 ? _value : _minimum); } }
void SetMinimumDP(DependencyProperty property, int value) { SetValue(property, value); MinimumChanged?.Invoke(this, new PropertyChangedEventArgs(value.ToString())); }
/// <summary> /// Raises the FancyControls.Counter.MinimumChanged event. /// </summary> /// <param name="e"> /// A FancyControls.ValueEventArgs that contains the event data. /// </param> protected void OnMinimumChanged(ValueEventArgs <int> e) { CorrectValue(); Value = e.NewValue; MinimumChanged?.Invoke(this, e); }