WPF进度条

时间:2012-07-17 05:26:19

标签: wpf

WPF:我在进度条中遇到问题我希望它在操作未完成时显示,当我的操作完成时它将隐藏。请告诉我可以理解的例子,这样我就可以将它应用到我的工作中。提前谢谢!

2 个答案:

答案 0 :(得分:2)

你可以在不同的场景中做到这一点。

  1. 使用触发器,(我更喜欢)

    <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. 使用转换器

    <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>
    
  3. 和转换器

        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();
            }
        }
    

答案 1 :(得分:1)

您可以使用具有BusyIndi​​cator控件的扩展WPF工具包

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

下载中包含样本。

为了您的信息,Microsoft首先在Silverlight中引入了BusyIndi​​cator(但未能为WPF发送一个)作为进度条的替代。