1
값이 최소값 또는 최대 값을 초과하면 WP7 ProgressBar의 시각적 측면이 작동을 멈 춥니 다. 구체적으로, 최소값 또는 최대 값을 초과 한 후 값이 나중에 Min과 Max 사이의 값으로 돌아 오면 ProgressBar가 완전히 어두워 지거나 완전히 채워집니다 (각각 최소값과 최대 값).값이 최소값 또는 최대 값을 초과하면 WP7 ProgressBar가 중단됩니다.
여기가 내 테스트입니다. 코드를 재현하는 데 관심이있는 경우 코드를 작성하십시오. 이 문제를 어떻게 해결할 수 있습니까?
Btw, 필자는 최소 및 최대가 달라지며 값이 자연히이 값을 초과한다는 것을 추가해야합니다.
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;
}
}
글쎄, 내 XAML이 Min 및 Max를 초과하는지 확인하는 다른 Property에 바인딩되도록 DomainModel을 약간 수정하여 Min 또는 Max 만 반환합니다. 즉, 여전히 귀찮은 버그 인 IMHO입니다. – Pretzel
Windows Phone 용 Silverlight 도구에서 PerformanceProgressBar를 사용해 볼 수 있습니다. 더 잘 작동 할 수도 있습니다. – gbanfill