Визуальный аспект WP7 ProgressBar перестает работать, когда значение превышает минимальное или максимальное.В частности, когда минимальное или максимальное значение превышено, а затем значение возвращается к значению между минимальным и максимальным, ProgressBar либо застревает в полностью темном или полностью заполненным (для минимального и максимального соответственно).
Вотмой тестовый код, если кто-то из вас заинтересован в воспроизведении этого.Как мне обойти это?
Кстати, я должен добавить, что мои минимальное и максимальное значения меняются, и значение иногда естественным образом превышает эти значения.
XAML:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button Click="Button_Click" Width="150" Height="100" VerticalAlignment="Top">Up</Button>
<Button Click="Button_Click_1" Width="150" Height="100" VerticalAlignment="Top" HorizontalAlignment="Right">Down</Button>
<ProgressBar x:Name="PBar" Value="{Binding Progress}" Maximum="{Binding Maximum}"></ProgressBar>
<TextBlock Text="{Binding Progress}" VerticalAlignment="Bottom"/>
</Grid>
C #:
using System.ComponentModel;
public partial class MainPage : PhoneApplicationPage, INotifyPropertyChanged
{
// Constructor
public MainPage()
{
InitializeComponent();
this.LayoutRoot.DataContext = this;
Maximum = 100;
}
private int _progress;
public int Progress
{
get { return _progress; }
set
{
_progress = value;
NotifyPropertyChanged("Progress");
}
}
private int _maximum;
public int Maximum
{
get { return _maximum; }
set
{
_maximum = value;
NotifyPropertyChanged("Maximum");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{ PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); }
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Progress += 10;
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Progress -= 10;
}
}