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![]()
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part <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
Je finis mes tests et je![]()
Tout fonctionne parfaitement, merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part Value="{Binding Path=ValueSetByCode, Mode=TwoWay,
![]()
Partager