Example #1
0
        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);
        }