[C#绘图]在半透明矩形上绘制字符串
首先要绘制一个半透明的矩形,用到的方法当然是FillRectangle()。这个函数在调用的时候除了要指明要绘制的矩形外,还要指明填充矩形的背景色。具体的方法就是在绘制矩形的时候传给它一个画刷Brush,对这个画刷指定颜色。带有透明度的颜色就是Color.FromArgb(int32,int32,int32,int32)。
具体代码:
private void Form1_Paint(object sender, PaintEventArgs e)
{
//获取画布的绘制指针
Graphics g = e.Graphics;
//红色笔绘制一个矩形
Rectangle rc = new Rectangle(10, 10, 100, 100);
g.DrawRectangle(new Pen(Color.Red), rc);
//利用带透明度的画刷填充矩形
SolidBrush sb = new SolidBrush(Color.FromArgb(80, 255, 255, 0));
g.FillRectangle(sb, rc);
}
使用指定StringFormat的格式化特性,用指定的Brush和Font对象在指定的矩形绘制指定的文本字符串。
代码:
private void Form1_Paint(object sender, PaintEventArgs e) { //获取画布的绘制指针 Graphics g = e.Graphics; //红色笔绘制一个矩形 Rectangle rc = new Rectangle(10, 10, 100, 100); g.DrawRectangle(new Pen(Color.Red), rc); //利用带透明度的画刷填充矩形 SolidBrush sb = new SolidBrush(Color.FromArgb(80, 255, 255, 0)); g.FillRectangle(sb, rc); //在前面的矩形中绘制字符串 string drawString = "35℃"; //创建字符串的绘制字体和画刷 Font drawFont = new Font("Arial", 16); SolidBrush drawBrush = new SolidBrush(Color.Red); //设置字符串格式 StringFormat drawFormat = new StringFormat(); drawFormat.Alignment = StringAlignment.Center; //在矩形中绘制字符串,并且使用drawFormat的性质 g.DrawString(drawString, drawFont, drawBrush, rc, drawFormat); }
提示:上面个的摄氏度符号是在搜狗输入法中打出来的。
程序执行效果: