WPF:我在进度条中遇到问题我希望它在操作未完成时显示,当我的操作完成时它将隐藏。请告诉我可以理解的例子,这样我就可以将它应用到我的工作中。提前谢谢!
答案 0 :(得分:2)
你可以在不同的场景中做到这一点。
使用触发器,(我更喜欢)
<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>
使用转换器
<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();
}
}
答案 1 :(得分:1)
您可以使用具有BusyIndicator控件的扩展WPF工具包
http://wpftoolkit.codeplex.com/wikipage?title=BusyIndicator
下载中包含样本。
为了您的信息,Microsoft首先在Silverlight中引入了BusyIndicator(但未能为WPF发送一个)作为进度条的替代。