public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if ((values[0] is ContentPresenter && values[1] is int) == false) { return(Visibility.Collapsed); } bool checkNextItem = System.Convert.ToBoolean(parameter.ToString()); ContentPresenter contentPresenter = values[0] as ContentPresenter; int progress = (int)values[1]; ItemsControl itemsControl = ItemsControl.ItemsControlFromItemContainer(contentPresenter); if (itemsControl == null) { return(Visibility.Collapsed); } int index = itemsControl.ItemContainerGenerator.IndexFromContainer(contentPresenter); if (checkNextItem == true) { index++; } WizardProgressBar wizardProgressBar = itemsControl.TemplatedParent as WizardProgressBar; int percent = (int)(((double)index / wizardProgressBar.Items.Count) * 100); if (percent < progress) { return(Visibility.Visible); } return(Visibility.Collapsed); }
private static object CoerceProgress(DependencyObject target, object value) { WizardProgressBar wizardProgressBar = (WizardProgressBar)target; int progress = (int)value; if (progress < 0) { progress = 0; } else if (progress > wizardProgressBar.Items.Count) { progress = wizardProgressBar.Items.Count; } if (wizardProgressBar.Items.Count == 0) { return(0); } return(100 * progress / wizardProgressBar.Items.Count); }