0

以下に示すように、コードで楕円を描画します。赤い色の高さを楕円の内側にするにはどうすればよいですか?たとえば、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);
    }
4

1 に答える 1

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();
}
于 2012-03-29T15:03:27.157 に答える