GraphicsPath,控制在顶部

时间:2010-02-09 17:08:32

标签: c# graphics gdi+

我有一个自定义的C#用户控件,我想在一个文本框后面的后面,这个文本框锚定在控件的居中底部。我画的是这样的圆圈:

protected override void OnResize(EventArgs e)
{
   this.gp= new GraphicsPath();
   this.gp.AddEllipse(0,0,width,height); //this is the width and height of the control
   this.Region=new Region(this.gp);
   this.Refresh();
   base.OnResize (e);
}

protected override void OnPaint(PaintEventArgs pe)
{
   Color centerColor = Color.FromArgb(255,255,255,255);
   Color surroundColor = Color.FromArgb(255,255,255,255);
   PathGradientBrush br=new PathGradientBrush(this.gp);
   br.CenterColor=centerColor;
   br.SurroundColors=new Color[]{surroundColor};
   pe.Graphics.FillPath(br,this.gp);
}

我已将文本框添加到GUI设计器中的控件。

当我跑步时,我最终会得到这样的结果:

alt text http://i47.tinypic.com/2pyrxbk.jpg

如何将椭圆保留在文本框后面?

谢谢, 标记

1 个答案:

答案 0 :(得分:3)

如果您想在后台执行此操作,请在“OnPaintBackground”覆盖中而不是在OnPaint中执行此操作。然后,当您想要绘制它时,椭圆所在的区域无效。