user27
user27

Reputation: 1007

WPF Progress bar

WPF: I have a Problem in Progressbar i want it to show when the operation is not finished and when my operation is finished it will hide. Please show me understandable example so i can apply it to my work. Thanks in advance!

Upvotes: 1

Views: 5279

Answers (2)

Lex Li
Lex Li

Reputation: 63123

You might use Extended WPF Toolkit which has a BusyIndicator control,

http://wpftoolkit.codeplex.com/wikipage?title=BusyIndicator

Samples are included in the download.

For your information, Microsoft introduces BusyIndicator in Silverlight first (but fails to ship one for WPF) as a replacement of progress bar.

Upvotes: 1

Artiom
Artiom

Reputation: 7837

you can do that in different scenarios.

  1. using triggers, (I'd prefer that)

    <ProgressBar Maximum="100" Margin="10,107,232,168" Value="0" Name="progr">
        <ProgressBar.Resources>
            <Style TargetType="{x:Type ProgressBar}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Value}" Value="100">
                        <Setter Property="Visibility" Value="Hidden"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ProgressBar.Resources>
    </ProgressBar>
    
  2. Using converters

    <Grid>
    <Grid.Resources>
        <delWpf:VisibilityConverter x:Key="conv"/>
    </Grid.Resources>
        <ProgressBar Name="prog2" Minimum="0" Maximum="100" 
           Value="{Binding CurrentIndex, UpdateSourceTrigger=PropertyChanged}" 
           Visibility="{Binding RelativeSource={RelativeSource Self}, Path=Value, Mode=OneWay, Converter={StaticResource conv}}" />
    </Grid>
    

and converter

    public class VisibilityConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return Math.Abs((double)value - 100) < 0.001 ? Visibility.Hidden : Visibility.Visible;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

Upvotes: 2

Related Questions