2012-02-19 2 views
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; 
    } 
} 
+0

글쎄, 내 XAML이 Min 및 Max를 초과하는지 확인하는 다른 Property에 바인딩되도록 DomainModel을 약간 수정하여 Min 또는 Max 만 반환합니다. 즉, 여전히 귀찮은 버그 인 IMHO입니다. – Pretzel

+0

Windows Phone 용 Silverlight 도구에서 PerformanceProgressBar를 사용해 볼 수 있습니다. 더 잘 작동 할 수도 있습니다. – gbanfill

답변

0

나는 위 내 댓글 당, 여기에 내 자신의 질문에 대답하는거야. "XAML이 Min 및 Max를 초과하는지 확인하는 다른 속성에 바인드되도록 My DomainModel을 약간 수정하여 Min 또는 Max 만 반환합니다. "

관련 문제