Bonjour,
est ce que quelqu'un connait lien vers un blog/post ou un exemple pour utiliser le control ProgressBar en fonction d'une valeur.
Typiquement, modifier le couleur en fonction de la property Value...
Merci d'avance ;)
Version imprimable
Bonjour,
est ce que quelqu'un connait lien vers un blog/post ou un exemple pour utiliser le control ProgressBar en fonction d'une valeur.
Typiquement, modifier le couleur en fonction de la property Value...
Merci d'avance ;)
Tu as plusieurs possibilités pour faire cela :
Tu peux utiliser un Converter qui se chargera de transformer la valeur de ton choix (pourquoi pas de la propriété Value de la progressar elle même) en couleur utilisable. L'intérêt est son coté utilisable.
http://timheuer.com/blog/archive/200...converter.aspx
Toujours pas Binding, tu peux transformer la valeur de ta classe directement en couleur réutilisable
coté Xaml :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 public class Maclasse : INotifyPropertyChanged { public double MaValue { get { return this.maValue; } set { if( maValue != value ) { maValue != value; this.RaisePropertyChanged("MaValue"); if( maValue < 0.3 ) { this.MaCouleur = new SolidColorBrush(Colors.Green); } else if( maValue < 0.75 ) { this.MaCouleur = new SolidColorBrush(Colors.Orange); } else { this.MaCouleur = new SolidColorBrush(Colors.Red); } } } } private double maValue = 0.0; public Brush MaCouleur { get { return maCouleur; } private set { if( maCouleur != value ) { maCouleur = value; this.RaisePropertyChanged("MaCouleur"); } } } private Brush maCouleur = null; }
Code:<ProgressBar Minimum="0.0" Maximum="0.0" Value="{Binding MaValue}" Foreground="{Binding MaCouleur}">
Oui c'est une excellente idée j'étais partis sur le converter je pense que c'est la méthode la plus intéressante pour une future réutilisation dans d'autres projet
Merci :ccool:
Je finis mes tests et je :resolu: ;)
Tout fonctionne parfaitement, merci
Code:
1
2
3
4
5
6
7
8
9 <ProgressBar Background="White" Value="{Binding Path=ValueSetByCode, Mode=TwoWay, Converter={StaticResource perCentFormat}}" Foreground="{Binding Path=Value, RelativeSource={RelativeSource Self}, Converter={StaticResource progressbarConverter}, Mode=OneWay}" Maximum="100" >
pas besoin du mode TwoWay puisque l'utilisateur ne peut agir sur la progressbar :)Code:Value="{Binding Path=ValueSetByCode, Mode=TwoWay,
C'est juste :ccool: