2012-03-29 2 views
0

Ich zeichne die Ellipse mit dem Code wie unten gezeigt. Wie kann ich die Höhe der roten Farbe innerhalb der Ellipse ändern kann zum Beispiel von 0% -100% geändert werden. Wenn 0% der Bedeutungen entspricht, ist die Höhe der roten Höhe leer. Bei 50% ist die Höhe der roten Farbe die Hälfte der Ellipse. Bei 100% ist die Höhe der roten Farbe voll. Danke.Ändern Sie die Höhe in der Ellipse enthalten

private void panel1_Paint(object sender, PaintEventArgs e) 
    { 
     Rectangle r1= new Rectangle(10, 130, 60, 60); 

     // Create solid brush. 
     SolidBrush redBrush = new SolidBrush(Color.Red); 

     // Create location and size of ellipse. 
     float x = 20F; 
     float y = 20F; 
     float width = 80.0F; 
     float height = 200.0F; 

     // Fill ellipse on screen. 
     e.Graphics.FillEllipse(redBrush, x, y, width, height); 
    } 

Antwort

1

Bitte versuchen Sie den folgenden Code:

void panel1_Paint(object sender, PaintEventArgs e) 
    float percent = 0.75f; 
    RectangleF bounds = new RectangleF(20, 20, 80, 200); 
    FillEllipse(e.Graphics, bounds, percent); 
} 
static void FillEllipse(Graphics g, RectangleF bounds, float percent) { 
    g.DrawEllipse(Pens.Red, bounds); 
    g.SetClip(new RectangleF(
     bounds.X, 
     bounds.Y + (1f - percent) * bounds.Height, 
     bounds.Width, 
     percent * bounds.Height)); 

    g.FillEllipse(Brushes.Red, bounds); 
    g.ResetClip(); 
} 
+0

Ich habe versucht, und es gelang ihm, danke Sir :) – yd4