编辑
2025-02-03
C# 应用
00
请注意,本文编写于 92 天前,最后修改于 92 天前,其中某些信息可能已经过时。

目录

摘要
正文

摘要

DrawString方法是C#中的一个重要方法,它允许程序员在窗体、按钮、标签等控件上绘制指定的文本字符串。通过使用DrawString方法,可以在窗体或其他控件上添加交互性,提高应用程序的用户体验。

在C#中,DrawString方法可以接受多个参数,包括指定位置的矩形对象、用于绘制文本的字体对象和用于绘制文本的颜色对象。使用这些参数,可以在指定位置上绘制文本,并使用指定的字体和颜色。此外,DrawString方法还可以接受多个文本字符串,可以通过指定字符串和颜色对象的方式,在多个位置上绘制不同的文本。

在使用DrawString方法时,需要注意一些细节。例如,文本字符串可能会超出指定的矩形范围,此时需要进行处理,以确保文本不会溢出控件的边界。此外,文本字符串可能包含空格或其他空白字符,需要进行处理,以确保文本正确地绘制到控件上。

正文

DrawString(String, Font, Brush, Single, Single, StringFormat)使用指定 Brush 的格式化特性,用指定的 FontStringFormat 对象在指定的位置绘制指定的文本字符串。
DrawString(String, Font, Brush, RectangleF, StringFormat)使用指定 Brush 的格式化特性,用指定的 FontStringFormat 对象在指定的矩形中绘制指定的文本字符串。
DrawString(String, Font, Brush, Single, Single)在指定位置并且用指定的 BrushFont 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, RectangleF)在指定矩形并且用指定的 BrushFont 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, PointF)在指定位置并且用指定的 BrushFont 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, PointF, StringFormat)使用指定 Brush 的格式化特性,用指定的 FontStringFormat 对象在指定的位置绘制指定的文本字符串。

一个例子

image.png

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); }

一个例子

image.png

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 枚举。

计算字符串的高宽

image.png

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 许可协议。转载请注明出处!