【问题标题】:WPF Progress barWPF 进度条
【发布时间】:2012-07-17 17:03:13
【问题描述】:

WPF:我的进度条出现问题,我希望它在操作未完成时显示,当我的操作完成时它会隐藏。请给我看一个可以理解的例子,这样我就可以把它应用到我的工作中。提前致谢!

【问题讨论】:

  • WPF 与 ASP.NET 无关。不要滥用标签。

标签: wpf


【解决方案1】:

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

  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>
    

和转换器

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

【讨论】:

  • 感谢您的回答,但您能否给我一个示例,说明当程序仍在读取该功能时,进度条不会停止,而当该功能停止时,进度条将隐藏。 .因为这就是我的确切情况。 .谢谢!
  • 我不确定我是否理解你。您想在功能启动时显示进度条并在功能结束时隐藏它吗?如果是这样,您将拥有这样的东西: private void RefreshData() { progressBar.Value = 0; //... progressBar.Value = 100; }。但这没有多大意义,因为您可以在这里控制可见性。请详细说明
  • 我只想在操作未完成时显示进度条,在操作完成时隐藏它。 .对不起,如果你不能理解我,但谢谢你的时间。
  • 嘿,Artiom 我的错误是这段代码中的“delWpf”
  • 它应该是你的转换器所在的命名空间的别名
【解决方案2】:

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

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

示例包含在下载中。

供您参考,Microsoft 首先在 Silverlight 中引入了 BusyIndi​​cator(但未能为 WPF 提供一个)作为进度条的替代品。

【讨论】:

    猜你喜欢
    • 2015-11-28
    • 2015-08-13
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    相关资源
    最近更新 更多