private void onWindowLeftMouseUp(object sender, MouseButtonEventArgs e) { if (leftMouseLastStatus == MouseButtonState.Pressed) { OnProgressBarUpdate(this, null); ProgressBarBeingEdited = null; } leftMouseLastStatus = MouseButtonState.Released; }
static void updateProgressBar(RoundedProgressBar progressBar) { if (progressBar.MinProgress > progressBar.MaxProgress || progressBar.Progress > progressBar.MaxProgress || progressBar.Progress < progressBar.MinProgress) { return; } var normProgress = calculateNormalizedProgress(progressBar.MinProgress, progressBar.MaxProgress, progressBar.Progress); progressBar.ProgressWidth = Convert.ToInt32(progressBar.ActualWidth * normProgress); }
private void onWindowMouseMove(object sender, MouseEventArgs e) { if (ProgressBarBeingEdited != null && ProgressBarBeingEdited != this) { return; } if ((IsMouseOver && e.LeftButton == MouseButtonState.Pressed) || leftMouseLastStatus == MouseButtonState.Pressed) { leftMouseLastStatus = MouseButtonState.Pressed; var progressPercent = e.GetPosition(this).X / ActualWidth; // Calculated progress in percentage progressPercent = progressPercent > 0.985 ? 1 : progressPercent; // Skip to the end if very close progressPercent = progressPercent < 0.015 ? 0 : progressPercent; // Skip to the start if very close var difference = Math.Abs(MinProgress - MaxProgress); // Max difference Progress = MinProgress + (difference * progressPercent); ProgressBarBeingEdited = this; } }