Pixelabweichung bei Ownerdrawn Columnheader



  • Ich habe eine Klasse von ListView abgeleitet in der die Columnheader mit einen Farbverlauf gefüllt werden sollen.Nun werden einige Header einen Pixel grösser gezeichnet als die anderen(die untere Kante des Randes fehlt).Ich habe r überprüft,das Rechteck hat immer die selbe Höhe und beginnt bei 0.Ich kann mir nicht erklären wie es zu diesen Abweichungen kommt.

    //e.DrawBackground();
     protected override void OnDrawColumnHeader(System.Windows.Forms.DrawListViewColumnHeaderEventArgs e)
            {          
                    Rectangle r = new Rectangle();
                    r.Location = e.Bounds.Location;
                    r.Width = e.Bounds.Width;
                    r.Height = e.Bounds.Height - 2;
    
                    Brush brush = new LinearGradientBrush(r, Header_Backgroundcolor1, Header_Backgroundcolor2, 90);
                    e.Graphics.FillRectangle(brush, r);
    
                    Pen pen = new Pen(new LinearGradientBrush(r, Header_Backgroundcolor2, Header_Backgroundcolor1, 90),1);
                    e.Graphics.DrawRectangle(pen, r);
                    e.DrawText();
                }
    

Anmelden zum Antworten