2012-02-19 5 views
1

WP7 ProgressBarの視覚的な側面は、値が最小値または最大値を超えると機能しなくなります。具体的には、最小値または最大値を超えた後、値がMinとMaxの間の値に戻ると、ProgressBarが完全に暗くなったり、完全に塗りつぶされたりします(MinおよびMaxの場合)。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を少し修正しました。つまり、これはまだ迷惑なバグです、IMHO。 – Pretzel

+0

Windows Phone用のSilverlightツールからPerformanceProgressBarを試すことができます。それはうまくいくかもしれません。 – gbanfill

答えて

0

私は上記の私のコメントにつき、ここで自分の質問に答えるつもりです。

"私のXAMLがMinとMaxが超過しているかどうかをチェックする別のプロパティにバインドするようにMyModelをわずかに変更すると、最小値または最大値のみが返されます。 "