Bonjour,

J'essaie de coder une custom ProgressBar en héritant de la classe ProgressBar.
Je surcharge la méthode OnRender() pour tracer des lignes sur la ProgressBar, mais je ne vois apparaitre que les lignes rouges sur le pourtour de la ProgressBar et pas celle que je trace au centre.
J'ai pourtant mis en commentaire l'appel de base.OnRender(drawingContext).
Quelqu'un peut-il m'expliquer la logique de ceci ?

Ci-dessous mon code et le rendu de ce que j'obtiens.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
    public class CustomProgressbar : ProgressBar
    {
 
        protected override void OnRender(DrawingContext drawingContext)
        {
            //base.OnRender(drawingContext);
            Pen pen = new Pen(Brushes.Red, 3.0);            
            var VPos = ActualHeight / 2;
            drawingContext.DrawLine(pen, new Point(0, VPos), new Point(ActualWidth, VPos));
            Rect rect = new Rect(0, 0, base.ActualWidth/2, base.ActualHeight);
            drawingContext.DrawRectangle(new LinearGradientBrush(Colors.LightBlue, Colors.Blue, 0.0), pen, rect);
        }
    }
Nom : Image 5.jpg
Affichages : 67
Taille : 9,4 Ko

J'ai l'impression que la surcharge de la méthode OnRender() n'est pas la bonne solution pour ce que je souhaite faire.

A la base, ce que je veut faire c'est pouvoir associer à ma ProgressBar une liste de pourcentages (List<double>) qui représente les instants où des alertes ont été levées et faire apparaitre une icone sur la ProgressBar pour chacune de ces valeurs.