我用如下所示的代码绘制椭圆。如何使椭圆内部的红色高度可以改变,例如从0%-100%。如果0%含义红色高度为空。如果50%红色的含义高度水平是椭圆的一半。如果100%红色的含义高度已满。谢谢。
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);
}
答案 0 :(得分:1)
请尝试以下代码:
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();
}