为什么超出最大值或最小值时不会更新进度条?

时间:2011-10-03 04:30:54

标签: c# wpf silverlight

        <ProgressBar Value="{Binding Player1PointsLife}" Minimum="0" Maximum="8000"/>

为什么当值超过最大值或最小值时,它不再更新UI?我该如何解决? 提前谢谢。

更新: 也许我不太清楚。我的意思是,我设置进度条值= 2000(好吧,更新de UI),然后我设置-1000(它是正确的,它不能在进度条中显示任何内容),最后我设置6000(这里必须更新)用户界面,但它不再更新了。)

2 个答案:

答案 0 :(得分:0)

该怎么办?它不能显示进度条,而不是完全为空或者比完全填满更全。你可以通过告诉进度条你想要它做什么来修复它。如果您希望它出现,比如说,85%已满,请将值设置为从最小值到最大值的85%。

对游戏中的统计数据执行此操作的常用方法是将最大值提高到玩家当前最大值。如果由于某种原因(例如特殊启动)允许stat超过正常最大值,则必须决定如何显示该值。也许你可以改变条形颜色并将最大值提高到临时最大值。也许你可以添加一个额外的栏来显示“溢出”的力量。什么适合你的概念。

答案 1 :(得分:0)

编写WPF转换器,以便在值>> 8000或<0时根据您的要求设置值。在XAML中将转换器设置如下:

<ProgressBar Value="{Binding Player1PointsLife, Converter={StaticResource **YourConverter**}}" Minimum="0" Maximum="8000"/>