WPF:我在进度条中有一个问题,我希望它在操作未完成时显示,当我的操作完成时它会隐藏。请给我看一个可以理解的例子,这样我就可以把它应用到我的工作中。提前致谢!
问问题
5249 次
2 回答
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();
}
}
于 2012-07-17T05:51:35.827 回答
1
您可以使用具有 BusyIndicator 控件的扩展 WPF 工具包,
http://wpftoolkit.codeplex.com/wikipage?title=BusyIndicator
示例包含在下载中。
供您参考,Microsoft 首先在 Silverlight 中引入了 BusyIndicator(但未能为 WPF 提供一个)作为进度条的替代品。
于 2012-07-17T09:03:13.470 回答