private void OnProgressValueChanged(DependencyPropertyChangedEventArgs e) { double value = (double)e.NewValue; if (MathHelper.AreEqual(IndeterminateValue, value)) { EnsureIndeterminate(); } else { EnsureDeterminate(); Value = value; } if (MathHelper.AreEqual(value, IndeterminateValue)) { if (!IsIndeterminate) { IsIndeterminate = true; } } else { if (IsIndeterminate) { IsIndeterminate = false; } Value = (double)e.NewValue; } }
static object CoerceProgressValue(DependencyObject d, object baseValue) { ProgressBarControl control = (ProgressBarControl)d; double value = (double)baseValue; if (MathHelper.AreEqual(control.IndeterminateValue, value)) { return(baseValue); } if (value < control.Minimum) { return(control.Minimum); } if (value > control.Maximum) { return(control.Maximum); } return(baseValue); }