DrawString方法是C#中的一个重要方法,它允许程序员在窗体、按钮、标签等控件上绘制指定的文本字符串。通过使用DrawString方法,可以在窗体或其他控件上添加交互性,提高应用程序的用户体验。
在C#中,DrawString方法可以接受多个参数,包括指定位置的矩形对象、用于绘制文本的字体对象和用于绘制文本的颜色对象。使用这些参数,可以在指定位置上绘制文本,并使用指定的字体和颜色。此外,DrawString方法还可以接受多个文本字符串,可以通过指定字符串和颜色对象的方式,在多个位置上绘制不同的文本。
在使用DrawString方法时,需要注意一些细节。例如,文本字符串可能会超出指定的矩形范围,此时需要进行处理,以确保文本不会溢出控件的边界。此外,文本字符串可能包含空格或其他空白字符,需要进行处理,以确保文本正确地绘制到控件上。
DrawString(String, Font, Brush, Single, Single, StringFormat) | 使用指定 Brush 的格式化特性,用指定的 Font 和 StringFormat 对象在指定的位置绘制指定的文本字符串。 |
DrawString(String, Font, Brush, RectangleF, StringFormat) | 使用指定 Brush 的格式化特性,用指定的 Font 和 StringFormat 对象在指定的矩形中绘制指定的文本字符串。 |
DrawString(String, Font, Brush, Single, Single) | 在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。 |
DrawString(String, Font, Brush, RectangleF) | 在指定矩形并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。 |
DrawString(String, Font, Brush, PointF) | 在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。 |
DrawString(String, Font, Brush, PointF, StringFormat) | 使用指定 Brush 的格式化特性,用指定的 Font 和 StringFormat 对象在指定的位置绘制指定的文本字符串。 |
一个例子
C#protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
//需要绘制的文字
String drawString = "你好,我是字符串";
//字体与刷子
Font drawFont = new Font("Arial", 16);
SolidBrush drawBrush = new SolidBrush(Color.Black);
//绘制的左上角位置
float x = 50.0F;
float y = 50.0F;
//设置要垂直绘制的字符串的格式
StringFormat drawFormat = new StringFormat();
drawFormat.FormatFlags = StringFormatFlags.DirectionVertical;
//使用字体、画笔、目标点和格式将字符串绘制到屏幕。
e.Graphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);
}
一个例子
C#protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
//需要绘制的文字
String drawString = "你好,我是字符串";
//字体与刷子
Font drawFont = new Font("Arial", 16);
SolidBrush drawBrush = new SolidBrush(Color.Black);
//绘制的左上角位置
float x = 50.0F;
float y = 50.0F;
float w = 300.0f;
float h = 50.0f;
RectangleF drawRect = new RectangleF(x, y, w, h);
e.Graphics.DrawRectangle(new Pen(Color.DarkRed), x, y, w, h);
//设置要在矩形中居中绘制的字符串的格式
StringFormat drawFormat = new StringFormat();
drawFormat.Alignment=StringAlignment.Center;
drawFormat.LineAlignment= StringAlignment.Center;
//使用字体、画笔、目标点和格式将字符串绘制到屏幕。
e.Graphics.DrawString(drawString, drawFont, drawBrush, drawRect, drawFormat);
}
StringFormat 类
Alignment | 获取或设置字符串的水平对齐方式。 |
DigitSubstitutionLanguage | 获取将本地数字替换西方数字时所使用的语言。 |
DigitSubstitutionMethod | 获取要用于数字替换的方法。 |
FormatFlags | 获取或设置包含格式化信息的 StringFormatFlags 枚举。 |
GenericDefault | 获取泛型默认 StringFormat 对象。 |
GenericTypographic | 获取泛型版式 StringFormat 对象。 |
HotkeyPrefix | 获取或设置此 StringFormat 对象的 HotkeyPrefix 对象。 |
LineAlignment | 获取或设置字符串的垂直对齐方式。 |
Trimming | 获取或设置此 StringFormat 对象的 StringTrimming 枚举。 |
计算字符串的高宽
C#SizeF size= e.Graphics.MeasureString(drawString, drawFont, new PointF(x, y), drawFormat);
label1.Text = size.Width.ToString() + ":" + size.Height.ToString();
本文作者:rick
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!